scrapy CrawlSpider:抓取策略/队列问题

时间:2011-11-06 11:24:18

标签: scrapy web-crawler

我几天前开始使用scrapy,了解了抓取特定网站,即dmo​​z.org示例;到目前为止它很好,我喜欢它。由于我想学习搜索引擎开发,我的目标是为任何“颜色”和内容的大量网站构建一个爬虫(以及存储,索引器等)。

到目前为止,我还尝试了深度优先顺序和bredth-first-order爬行。

我目前只使用一条规则,我设置了一些跳过某些路径的路径。

Rule(SgmlLinkExtractor(deny=path_deny_base, deny_domains=deny_domains),
        callback='save_page', follow=True),

我有一个管道,一个用于存储下载页面的URL,正文和标题的mysql存储,通过PageItem与这些字段完成。

我现在的问题是:

  1. 使用项目进行简单的页面存储是否可以?

  2. 如果页面已被抓取(在过去的六个月中)蜘蛛检查数据库,它是如何工作的,它是以某种方式构建的?

  3. 是否有类似无用域名的黑名单,即。占位符域,链接农场等?

  4. 还有许多其他问题,比如存储,但我想我会停在这里,只是一个更常见的搜索引擎问题

    • 是否有办法从其他专业抓取工具获取抓取结果数据,当然必须通过发送硬盘来完成,否则如果我自己抓取它们,数据量将是相同的(压缩左侧)。

1 个答案:

答案 0 :(得分:0)

我将尽力回答你的两个问题:

  
      
  1. 使用项目进行简单的页面存储是否可以?
  2.   

AFAIK,scrapy并不关心你放入物品领域的东西。只有你的管道才会与他们打交道。

  
      
  1. 如果页面已被抓取(在过去的六个月中)蜘蛛检查数据库,它是如何工作的,它是以某种方式构建的?
  2.   

Scrapy复制了中间件,但它仅在当前会话中过滤重复项。您必须手动阻止scrapy不抓取您在六个月前抓取过的网站。

关于问题3和问题4 - 你不理解它们。