我正在创建一种新闻聚合器,我想创建一个程序(Python)来正确检测标题并显示它。我该怎么做呢?这是机器学习问题吗?
我将不胜感激任何可以为我指明正确方向的文章或书籍。
我过去的尝试包括 BeautifulSoup 和 Requests 模块。我应该检查任何其他开源模型吗?
谢谢你,费尔南多
我正在创建一种新闻聚合器,我想创建一个程序(Python)来正确检测标题并显示它。我该怎么做呢?这是机器学习问题吗?
我将不胜感激任何可以为我指明正确方向的文章或书籍。
我过去的尝试包括 BeautifulSoup 和 Requests 模块。我应该检查任何其他开源模型吗?
谢谢你,费尔南多
抓取网页的直接方法需要人工学习——查看页面,确定您认为的标题,找出它们是如何标记的,然后使用像 BeautifulSoup 这样的解析器来查找这些标签。例如,目前 Techmeme 上的 1 级标题被标记为:
<DIV CLASS="ii">
2级标题是:
<STRONG CLASS="L1">
在您的程序获取页面并匹配您感兴趣的标签后,查看它们是否识别出您要查找的内容。如果遗漏了某些标题,请在搜索列表中添加其他标签。如果您得到误报(点击不是标题的链接),将它们清除将需要额外的页面相关逻辑。逆向工程没有魔法,只需繁重的工作和测试以及定期重新验证,以确保网站管理员没有对您进行任何操作。
玩了一会儿后,我发现这个效果最好:
使用 BeautifuSoup 和 Requests 模块
r = requests.get('http://example.com')
soup = BeautifulSoup(r.text)
if soup.findAll('title'):
title = soup.find('title')
print title.renderContents()
结果是标题文本应该使用正则表达式稍微清理一下。
也许解析他们的 RSS\Atom 提要会容易得多。谷歌很容易提供这些链接http://wiki.python.org/moin/RssLibraries和http://pypi.python.org/pypi/Atomisator/1.3