需要有关从网站检索数据的想法

时间:2011-10-03 16:22:27

标签: screen-scraping external web sites

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

我有一个客户想要建立一个专门针对特定国家(泰国,在这种情况下)讲英语的旅行者的网站。不同的交通方式(公共汽车和火车)都有很好的网站来提供各自的信息。就它们呈现的数据而言,两者都是非常静态的(时间表很少改变)。这是我需要获取信息的网站之一:train schedules客户希望为用户提供搜索开始和结束位置的能力,并使用外部网站的信息确定他们如何最好地到达那里,为所选运输的不同模式提供一条具有计划时间的路线。

现在,根据我有限的经验,我认为这样做的方法是从外部网站的服务器(通过API或其他方式)检索原始计划信息,并将信息保留在数据库中,这可以是根据需要查询。我们的第一个想法是联系相关机构以确定如何做到这一点,但由于语言障碍,这已被证明是有问题的。

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

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

3 个答案:

答案 0 :(得分:2)

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

上述方法也可以与某种屏幕scaper一起使用,如果页面变化太大,可能会回退到手动过程。

最终,这是您的客户愿意承担多少精力(成本)的情况

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

我可以说数据是动态的,结构良好。对熟悉xpath的人来说,抓住这个网站并不难。