0

我正在创建一种新闻聚合器,我想创建一个程序(Python)来正确检测标题并显示它。我该怎么做呢?这是机器学习问题吗?

我将不胜感激任何可以为我指明正确方向的文章或书籍。

我过去的尝试包括 BeautifulSoup 和 Requests 模块。我应该检查任何其他开源模型吗?

谢谢你,费尔南多

4

3 回答 3

1

抓取网页的直接方法需要人工学习——查看页面,确定您认为的标题,找出它们是如何标记的,然后使用像 BeautifulSoup 这样的解析器来查找这些标签。例如,目前 Techmeme 上的 1 级标题被标记为:

<DIV CLASS="ii">

2级标题是:

<STRONG CLASS="L1">

在您的程序获取页面并匹配您感兴趣的标签后,查看它们是否识别出您要查找的内容。如果遗漏了某些标题,请在搜索列表中添加其他标签。如果您得到误报(点击不是标题的链接),将它们清除将需要额外的页面相关逻辑。逆向工程没有魔法,只需繁重的工作和测试以及定期重新验证,以确保网站管理员没有对您进行任何操作。

于 2012-09-17T21:26:08.980 回答
1

玩了一会儿后,我发现这个效果最好:

使用 BeautifuSoup 和 Requests 模块

r = requests.get('http://example.com')
soup = BeautifulSoup(r.text)

if soup.findAll('title'):
  title = soup.find('title')
  print title.renderContents()

结果是标题文本应该使用正则表达式稍微清理一下。

于 2012-09-18T20:00:21.040 回答
0

也许解析他们的 RSS\Atom 提要会容易得多。谷歌很容易提供这些链接http://wiki.python.org/moin/RssLibrarieshttp://pypi.python.org/pypi/Atomisator/1.3

但这些都是纯 XML,所以你可以使用内置的urllib和 XML(DOMSAX)库

于 2012-09-17T21:11:28.390 回答