所以我正在尝试构建一个网络抓取工具,我可以打开任何评论网站,让它可以相当可靠地从文本中抓取用户评论。也就是说,不管是为亚马逊和Overstocked建造一个刮刀,我只想要一个刮刀,即使要牺牲精度,也可以刮掉对它们的产品的评价。我简单地和我的一位教授谈过,他提到我基本上可以实现一些启发式方法并从中收集数据(作为一个基本的例子,只需要获取p标签中的所有文本)。目前,我真的只是想找一些关于前进方向的建议。
(如果重要的是,目前我正在使用mechanize和lxml(Python)来抓取各个网站。)
谢谢!
答案 0 :(得分:4)
这个问题并没有真正的'答案',但为了遇到这个问题的人的利益:
“通用”刮刀的概念 - 充其量 - 是一项有趣的学术练习。它不太可能以任何有用的方式。
要查看的两个有用项目是Scrapy,一个python web抓取框架和http://www.nltk.org/,Natural Language Toolkit,一大堆与er,自然语言处理相关的python模块文本。
答案 1 :(得分:3)
在当天(大约1993年),我写了一个蜘蛛来从各种网站中提取目标内容,这些网站使用了为每个网站定义的“规则”集合。
规则被表达为正则表达式,并被分类为“准备”规则(按摩检索页面以更好地识别/隔离可提取数据的规则)和“提取”规则(导致有用数据被提取的规则)。
例如,给定页面:
<html>
<head><title>A Page</title></head>
<body>
<!-- Other stuff here -->
<div class="main">
<ul>
<li>Datum 1</li>
<li>Datum 2</li>
</ul>
</div>
<!-- Other stuff here -->
<div>
<ul>
<li>Extraneous 1</li>
<li>Extraneous 2</li>
</ul>
</div>
<!-- Other stuff here -->
</body>
</html>
仅提取“基准”值的规则可能是:
'^.*?<div class="main">'
'</div>.+</html>$'
'<li>([^<]+)</li>'
这对大多数网站都有效,直到他们更改了布局,此时该网站的规则需要调整。
今天,我可能会使用Dave Raggett的HTMLTidy做同样的事情,将所有检索到的页面规范化为合法的XHTML和XPATH / XSLT,以便将页面按到正确的格式。
答案 2 :(得分:0)
有RDF vocabulary for reviews,还有microformat。如果您的评论采用这种格式,则很容易解析。