当dont_filter = False

时间:2016-07-15 09:33:36

标签: python python-3.x web-scraping scrapy

我正在使用Scrapy 1.1.0和Python 3.5从网站上抓取数据。 以下代码正在运行......

class ImdbSpider(scrapy.Spider):
    name = "imdbFav"
    allowed_domains = ["http://www.imdb.com"]
    start_urls = [
        "http://www.imdb.com/title/tt0203166/"
    ]
    recommendRegex = re.compile(r'\/title\/([A-Za-z0-9]*)')

    def parse(self, response):
        for recommend in response.xpath('//div[@class="rec_page"]/div[@class="rec_item"]/a/@href').extract():
            mo = self.recommendRegex.search(recommend)
            recommendId = mo.group(1)
            link = "http://www.imdb.com/title/" + recommendId
            print(link)
            yield scrapy.Request(link, callback=self.parse, dont_filter=True)
enter code here

但是......如果 dont_filter = False ,我不知道为什么不调用Request回调。 文档说:

  

如果要多次执行相同的请求,则使用此选项,以忽略重复过滤器。小心使用它,否则你会进入爬行循环。

但我不是要求相同的网址。这里发生了什么?

谢谢朋友们!

1 个答案:

答案 0 :(得分:0)

这是常见的朋友问题:

  • Greg和Melissa是朋友
  • Melissa和John是朋友
  • John和Jake是朋友
  • 杰克和格雷格是朋友

就你的情况而言,它是关于电影的:

  • 一起暗示我们是最好的
  • 我们是最好的建议Show me love
  • 向我展示爱情的建议

当你在寻找建议时,它必然会在电影中重复几次。最好的方法是将电影数据保存到数据库中,并通过其ID提供建议。