0

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

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

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

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

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

4

3 回答 3

2

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

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

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

于 2011-10-03T16:38:01.377 回答
1

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

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

于 2013-07-08T03:58:56.880 回答
0

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

于 2011-10-03T22:35:44.807 回答