从网页中提取文本

3
我希望编写一个程序,根据公交车站时间更新我的个人网页。如果我手动执行此操作,我会遵循以下步骤:
1. 访问 www.calgarytransit.com 2. 输入站点编号,例如9510 3. 单击“下一辆公交车”的按钮
结果可能如下所示:
10:16p Route 154
10:46p Route 154
11:32p Route 154
抓取时间和路线后,我将相应地更新我的网页。我不知道从哪里开始。我对网络编程一无所知,但可以编写一些C和Python。有哪些主题/库可以查看?
8个回答

13

此外,请确保获取最新版本3.1.0.1,该版本于昨天(2009年1月6日)发布,修复了在先前版本中引入的一个重大回归问题,当面对野生、未加限制的HTML代码中的布尔属性(如<td nowrap>)时,解析器会引发异常。 - prairiedogg
@S.Lott:哦,你是对的。已经更正了,并且我还为Py3k添加了一个urllib.request的链接。 - Jeremy
我在将使用BeautifulSoup-3.0.x开发的解析器部署到Ubuntu 10.04系统时遇到了问题 - 它总是在解析输入时出错。原来Lucid Lynx附带的是BeautifulSoup-3.1.0.1版本,这并不是一个好的版本(http://www.crummy.com/software/BeautifulSoup/3.1-problems.html)。最终通过将我自己的BS版本(3.0.x)与我的程序一起发布来解决问题。 - Luke404

5
你所询问的是“网络爬虫”。我相信如果你在谷歌上搜索一下,你会找到一些资料,但核心概念是你想要打开与网站的连接,读取HTML,解析并识别出你想要的块。 Python Wiki有很多关于这方面的好东西。

3

由于您使用的是C语言,您可能想查看cURL;尤其要注意libcurl。它很棒。


2

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

1

该网站没有提供API以便您获取所需的适当数据。在这种情况下,您需要解析实际的HTML页面,例如通过CURL请求返回的页面。


1
这被称为 网络爬虫,甚至有自己的维基百科文章,您可以在其中找到更多信息。
此外,您还可以在SO讨论中找到更多详细信息。

0
只要您尝试“爬取”的网页布局不经常更改,您就可以使用任何现代编程语言解析HTML。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接