Maison  >  Questions et réponses  >  le corps du texte

python - scrapy url去重

请问scrapy是url自动去重的吗?比如下面这段代码,为什么运行时start_urls里面的重复url会重复爬取了?

class TestSpider(scrapy.Spider):
    name = "test"
    allowed_domains = ["baidu.com"]
    start_urls = ['http://baike.baidu.com/fenlei/%E5%A8%B1%E4%B9%90%E4%BA%BA%E7%89%A9',
                  'http://baike.baidu.com/fenlei/%E5%A8%B1%E4%B9%90%E4%BA%BA%E7%89%A9',
                  'http://baike.baidu.com/fenlei/%E5%A8%B1%E4%B9%90%E4%BA%BA%E7%89%A9',]

    def parse(self, response):
        for sel in response.xpath('//p[@class="grid-list grid-list-spot"]/ul/li'):
            item = TestspiderItem()
            item['title'] = sel.xpath('p[@class="list"]/a/text()')[0].extract()
            item['link'] = sel.xpath('p[@class="list"]/a/@href')[0].extract()
            yield item
阿神阿神2741 Il y a quelques jours756

répondre à tous(2)je répondrai

  • 迷茫

    迷茫2017-04-18 10:29:19

    Créez un gestionnaire d'URL afin qu'il ne soit pas exploré à plusieurs reprises

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-18 10:29:19

    Compris, changez-le simplement par ceci.

    def start_requests(self):

    yield scrapy.Request('http://baike.baidu.com/fenlei/%E5%A8%B1%E4%B9%90%E4%BA%BA%E7%89%A9', self.parse)
    yield scrapy.Request('http://baike.baidu.com/fenlei/%E5%A8%B1%E4%B9%90%E4%BA%BA%E7%89%A9', self.parse)
    yield scrapy.Request('http://baike.baidu.com/fenlei/%E5%A8%B1%E4%B9%90%E4%BA%BA%E7%89%A9', self.parse)

    répondre
    0
  • Annulerrépondre