我正在创建一种新闻聚合器,我想创建一个正确检测标题并显示它的程序(Python)。我该怎么做呢?这是机器学习问题吗?
我会很感激能指出正确方向的任何文章或书籍。
我过去的尝试包括BeautifulSoup和Requests模块。我应该检查的任何其他开源模型?
谢谢你, 费尔南多
答案 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/RssLibraries和http://pypi.python.org/pypi/Atomisator/1.3