你如何从像techmeme这样的博客/文章中获取标题?

时间:2012-09-17 20:57:17

标签: python flask-sqlalchemy

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

我会很感激能指出正确方向的任何文章或书籍。

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

谢谢你, 费尔南多

3 个答案:

答案 0 :(得分:1)

刮取网页的直接方法需要人工学习 - 查看页面,确定您认为的标题,找出标记方式,然后使用像BeautifulSoup这样的解析器查找这些标记。例如,Techmeme上的1级标题目前标有:

<DIV CLASS="ii">

,第2级标题是:

<STRONG CLASS="L1">

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

答案 1 :(得分:1)

在玩了一下之后我发现这个效果最好:

使用BeautifuSoup和Requests模块

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

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

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

答案 2 :(得分:0)

解析他们的RSS \ Atom提要可能更容易。 Google可以轻松提供这些链接http://wiki.python.org/moin/RssLibrarieshttp://pypi.python.org/pypi/Atomisator/1.3

但这些是纯XML,因此您可以使用内置的urllib和XML(DOMSAX)库