2009-01-07 112 views
3

我想编写一个程序,该程序将查找巴士站时间并相应地更新我的个人网页。从网页抓取文本

如果我这样做手工我会

  1. 访问www.calgarytransit.com
  2. 输入停靠数。即)9510
  3. 点击按钮 “下一个总线”

的结果可以看起来如下:

10:16P路线154
10:46P路线154
11:32P路线154

一旦我抓住了时间和路线,我会相应地更新我的网页。

我不知道从哪里开始。我知道在网络编程方面蠢蠢欲动,但可以编写一些C和Python。我可以研究哪些主题/图书馆?

回答

13

Beautiful Soup是专为解析网页而设计的Python库。在它和urllib2(Python 3中的urllib.request)之间,你应该能够弄清楚你需要什么。

+0

此外,一定要得到的最新版本3.1.0.1,昨天公布(2009年1月6日),它修复引入一个大倒退在之前的版本中,当解析器遇到布尔属性如在野性的,未开发的html版本时会引发解析器异常。 – Prairiedogg 2009-01-07 06:08:40

+2

美丽的汤+1。 – 2009-01-07 06:43:15

3

既然你用C写的,你可能想看看cURL;尤其要看看libcurl。这很棒。

5

你在问什么叫做“网页抓取”。我敢肯定,如果你周围的谷歌会找到一些东西,但核心概念是,你想打开一个连接到网站,在HTML中啜饮,解析它,并确定你想要的块。

Python Wiki在这方面有很多东西。

1

该网站并不提供API,以便您能够获取所需的相应数据。在这种情况下,您需要解析由CURL请求返回的实际HTML页面。

0

只要你试图'刮'的网页布局并没有经常改变,你应该能够用任何现代编程语言来解析HTML。

1

这就是所谓的网络抓取,它甚至有它自己的Wikipedia article在哪里你可以找到更多的信息。

此外,您可能会在此SO discussion中找到更多详细信息。

2

您可以使用Perl来帮助您完成任务。

use strict; 
use LWP; 

my $browser = LWP::UserAgent->new; 

my $responce = $browser->get("http://google.com"); 
print $responce->content; 

你的性反应的对象可以告诉你,如果它suceeded以及返回page.You的内容也可以使用同样的图书馆张贴到网页。

这是一些文档。http://metacpan.org/pod/LWP::UserAgent