3

我想编写一个程序来查找公交车站时间并相应地更新我的个人网页。

如果我要手动执行此操作,我会

  1. 访问 www.calgarytransit.com
  2. 输入停靠点编号。即)9510
  3. 点击按钮“下一班车”

结果可能如下所示:

10:16p 154 号公路
10:46p 154 号公路
11:32p 154 号公路

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

我不知道从哪里开始。我知道对 Web 编程很深,但会写一些 C 和 Python。我可以研究哪些主题/库?

4

8 回答 8

13

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

于 2009-01-07T05:17:21.517 回答
5

你问的是所谓的“网络抓取”。我敢肯定,如果你用谷歌搜索你会发现一些东西,但核心概念是你想要打开一个到网站的连接,在 HTML 中啜饮,解析它并识别你想要的块。

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

于 2009-01-07T05:18:24.087 回答
3

由于您是用 C 编写的,因此您可能需要查看cURL;特别是,看看 libcurl。这很棒。

于 2009-01-07T05:17:13.153 回答
2

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

use strict;
use LWP;

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

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

您的响应对象可以告诉您它是否成功以及返回页面的内容。您也可以使用同一个库发布到页面。

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

于 2009-01-07T05:35:48.500 回答
2

您可以使用可用于 Python http://wwwsearch.sourceforge.net/mechanize/的 mechanize 库

于 2009-01-07T06:43:38.283 回答
1

该站点不提供 API 让您能够获取所需的适当数据。在这种情况下,您需要解析由例如 CURL 请求返​​回的实际 HTML 页面。

于 2009-01-07T05:19:33.820 回答
1

这称为Web 抓取,它甚至有自己的Wikipedia 文章,您可以在其中找到更多信息。

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

于 2009-01-07T05:27:11.793 回答
0

只要您尝试“抓取”的网页布局没有定期更改,您就应该能够使用任何现代编程语言解析 html。

于 2009-01-07T05:20:06.550 回答