Python Scrapy - Scrapy,请求无效

dffbzjpn  于 2022-12-13  发布在  Python
关注(0)|答案(1)|浏览(161)

我的scraper抓取了0个页面,我认为问题出在parse方法的最后一行代码中:

def parse(self, response):
        all_companies = response.xpath('//header[@class = "card-header"]')

        for company in all_companies:
            company_url = company.xpath('./a[@class = "card-header-scorecard"]/@href').extract_first()
            yield scrapy.Request(url=company_url, callback = self.parse_company)

我用scraps shell测试了对company_url的检索,它们都被正确返回。scraper访问每个url,并使用parse_company方法抓取条目。
在使用yield之前,我使用的是Rule特性,它与parse_company配合得很好,所以我知道这个方法是有效的,但是出于必要,我不得不改变我的方法。

rules = (
    Rule(LinkExtractor(restrict_css=".card-header > a"), callback="parse_company")
)
qzwqbdag

qzwqbdag1#

您正在使用CrawlSpider,而在最新版本的scrapy CrawlSpider中,默认回调是_parse而不是parse。如果您想覆盖默认回调,请使用_parse,或者您可以使用scrapy.Spider而不是scrapy.CrawlSpider

相关问题