【问题标题】:Need ideas on retrieving data from a website需要有关从网站检索数据的想法
【发布时间】:2011-10-03 16:22:26
【问题描述】:

我很困惑,需要一些关于如何做到这一点甚至是否可以做到的想法。

我有一个客户想为特定国家(在本例中为泰国)的说英语的旅行者打造一个网站。不同的交通方式(公共汽车和火车)都有很好的网站来提供各自的信息。就它们呈现的数据而言,两者都是非常静态的(时间表很少改变)。这是我需要从中获取信息的站点之一:train schedules 客户希望为用户提供搜索起点和终点位置的能力,并使用外部网站的信息确定他们如何最好地到达那里,提供一条路线,其中包含不同交通方式的时间表。

现在,以我有限的经验,我认为这样做的方法是从外部站点的服务器(通过 API 或其他方式)检索原始时间表信息并将信息保留在数据库中,这可以是根据需要查询。我们的第一个想法是联系相关当局以确定如何/是否可以这样做,但事实证明,这主要是由于语言障碍造成的。

我的客户建议基本上是“屏幕抓取”,但这听起来充其量是复杂的,下载网页并通过 HTML 过滤相关/必要的数据以放入数据库。我担心这些主要是静态网站上的信息是如此静态,以至于数据甚至没有保存在数据库中来构建页面,并且网页本身会在发生变化时更新(硬编码)。

我真的可以在这里使用一些帮助和建议。谢谢!

【问题讨论】:

    标签: screen-scraping external web sites


    【解决方案1】:

    屏幕抓取始终是 IMO 的问题,因为您受制于页面编写者的摆布。如果内容是静态的,那么我认为将数据手动复制到数据库会更容易。如果您想及时了解更改,您可以在转录信息时对页面进行快照,并运行作业以定期检查页面是否已从快照更改。当它发生时,它会发送一封电子邮件让您更新它。

    上述方法也可以与某种屏幕修饰器结合使用,如果页面变化太大,它可能会退回到手动过程。

    最终,这取决于您的客户愿意为准确性承担多少努力(成本)

    【讨论】:

    • 是的 - 你的回答和我期待的差不多。当然,如果有人有任何其他想法,我将不胜感激。
    • 在这种情况下,cURL 脚本(我从未使用过)是否有任何帮助/益处?
    【解决方案2】:

    我已经为以下网站做了这个:http://www.buscatchers.com/ 所以这绝对是可行的!旅游网站网络抓取解决方案的一个关键特性是,如果在抓取过程中出现任何问题,它必须向您发送电子邮件。在网站上,我使用两天的窗口,这样如果设计发生变化,我有两天时间来修复代码。只有一两次我不得不更改我的代码,而且这很容易做到。

    至于一些例子。这里有一些简化的源代码:http://www.buscatchers.com/about/guide。该项目的完整源代码在这里:https://github.com/nicodjimenez/bus_catchers。这应该会给你一些关于如何开始的想法。

    【讨论】:

    • 感谢您的链接,nicodjimenez。这些会有帮助。
    【解决方案3】:

    我可以看出数据是动态的,结构良好。熟悉 xpath 的人不难抓取这个网站。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-05
      • 1970-01-01
      • 2011-08-16
      • 2014-12-01
      • 1970-01-01
      相关资源
      最近更新 更多