рекурсивное использование scrapy для получения ссылок на многостраничных

#python #web-scraping #scrapy #scrapy-spider

#python #очистка веб-страниц #scrapy

Вопрос:

Я использую следующий код, который я нашел в Интернете, для рекурсивного удаления ссылок на нескольких страницах. Предполагается, что он рекурсивно возвращает мне все ссылки, которые мне нужны на всех страницах. Но в итоге я получил максимум 100 ссылок. Любой совет будет полезен.

 class MySpider(CrawlSpider):
    name = "craigs"
    allowed_domains = ["craigslist.org"]
    start_urls = ["http://seattle.craigslist.org/search/jjj?is_parttime=1"]   

    rules = (Rule (SgmlLinkExtractor(allow=("indexd00.html", ),restrict_xpaths=('//a[@class="button next"]',))
    , callback="parse_items", follow= True),
    )

    def parse_items(self, response):
        hxs = HtmlXPathSelector(response)
        titles = hxs.select('//span[@class="pl"]')
        items = []
        for titles in titles:
            item = CraigslistSampleItem()
            item ["title"] = titles.select("a/text()").extract()
            item ["link"] = titles.select("a/@href").extract()           
            items.append(item)     
        return(items)
  

Ответ №1:

Просто исключите, allow=("indexd00.html", ) чтобы позволить ему проанализировать next ссылку:

 rules = (Rule(SgmlLinkExtractor(restrict_xpaths=('//a[@class="button next"]',)),           
              callback="parse_items", follow= True),)