Scrapy-无法列出更深的链接

问题描述

我需要创建一个网站网址列表。我为此使用Scrapy 2.3.0。 问题在于结果('item_scraped_count')是63个链接,但我知道还有更多。

有什么方法可以处理更深层次的内容获取网址?

我的下面的代码

from scrapy.spiders import CrawlSpider
from scrapy.spiders import Rule
from scrapy.linkextractors import LinkExtractor

from scrapy import Item
from scrapy import Field


class UrlItem(Item):
    url = Field()


class RetriveUrl(CrawlSpider):
    name = 'retrive_url'
    allowed_domains = ['example.com']
    start_urls = ['https://www.example.com']

    rules = (
        Rule(LinkExtractor(),callback='parse_url'),)

    def parse_url(self,response):
        item = UrlItem()
        item['url'] = response.url

        return item

解决方法

您应该允许爬网更深入。试试这个:

Rule(LinkExtractor(),callback='parse_url',follow=True),

follow是一个布尔值,它指定是否应从使用此规则提取的每个响应中遵循链接。如果callbackNone,则遵循默认值为True,否则默认为False

From the Scrapy docs