微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何构建可从任何站点提取特定信息的网络搜寻器?

如何解决如何构建可从任何站点提取特定信息的网络搜寻器?

| 因此,我正在尝试构建一个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 举报,一经查实,本站将立刻删除。