如何解决如何构建可从任何站点提取特定信息的网络搜寻器?
| 因此,我正在尝试构建一个Web搜寻器,可以打开任何评论网站,并使其相当可靠地从文本中抓取用户评论。就是说,我只希望有一个刮板可以将两个产品的评论从两个刮板中刮除,而不是为了牺牲亚马逊的准确性而建造一个刮板。我曾与一位教授简短地交谈过,他提到我基本上可以实施一些启发式方法并从中收集数据(作为一个基本示例,只需将所有文本包含在p标记内)。目前,我真的只是在寻找有关朝哪个方向发展的建议。 (如果有关系的话,此刻我正在使用机械化和lxml(Python)来爬行单个站点。) 谢谢!解决方法
这个问题实际上并没有\'answer \',但是为了任何遇到此问题的人的利益:
“通用”刮板的概念充其量是一项有趣的学术活动。它不可能以任何有用的方式实现。
需要研究的两个有用的项目是python Web抓取框架Scrapy和自然语言工具包http://www.nltk.org/,它是与处理自然语言文本有关的大量python模块集合。
,回顾当天(大约在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>
仅提取\'Datum \'值的规则可能是:
使用ѭ1leading剥离带头部分
使用\'</div>.+</html>$\'
去除尾部
用\'<li>([^<]+)</li>\'
提取结果
在大多数网站更改布局之前,此方法均适用,此时需要调整该网站的规则。
今天,我可能会使用Dave Raggett的HTMLTidy做同样的事情,以将所有检索到的页面标准化为合法的XHTML和XPATH / XSLT,以将页面压缩为正确的格式。
,有用于评论的RDF词汇表,还有微格式。如果您的评论采用这种格式,则很容易解析。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。