如何使用scrapy抓取数千页?

时间:2017-04-21 13:02:40

标签: python scrapy web-crawler

我正在寻找抓取数千页并需要解决方案。每个网站都有自己的HTML代码 - 它们都是独一无二的网站。没有干净的数据源或API可用。我希望将捕获的数据加载到某种数据库中。

如果可能,有关如何使用scrapy进行此操作的任何想法吗?

1 个答案:

答案 0 :(得分:4)

如果我必须从数千个站点中删除干净的数据,每个站点都有自己的布局,结构等,我会实现以下方法(实际上已经在某些项目中这样做了):

  1. 抓取工具 - 一个scrapy脚本,使用所有子页面(这是最简单的部分)抓取这些网站并将其转换为纯文本
  2. NLP处理 - 纯文本上的一些基本NLP(自然语言)处理(标记化,词性(POS)标记,命名实体识别(NER))
  3. 分类 - 一种分类器,可以使用步骤2中的数据来判断页面是否包含我们正在寻找的数据 - 基于简单规则或 - 如果需要 - 使用机器学习。那些怀疑包含任何可用数据的页面将被用于下一步:
  4. 提取 - 基于语法,统计或机器学习的提取器,使用POS标签和NER标签(以及任何其他特定于域的因素)来提取我们正在寻找的数据对
  5. 清理 - 在步骤4中创建的重复记录的一些基本匹配,并且可能还需要丢弃在步骤2到4中具有低置信度分数的记录。 / LI>

    这远远超出了建立一个scrapy刮刀,当然需要在NLP和机器学习方面有深厚的知识和经验。

    此外,您无法通过此类方法获得接近100%准确结果。根据算法的调整和训练方式,这样的系统要么会跳过一些有效数据(漏报),要么会在实际上没有任何数据(误报)......或两者混合的情况下获取数据。 (误报和漏报)。

    尽管如此,我希望我的回答可以帮助您了解情况。