使用ScrapyCrawl分页的Scrapy问题

2024-05-13 21:53:46 发布

您现在位置:Python中文网/ 问答频道 /正文


大家好,
希望你身体健康,
我正在构建一个基本的爬行器,使用爬行器在网站上爬行,我随机选择了一个公司评论(只是为了培训目的)。
请参阅下面的我的代码。
共有84条评论,但只有64条被刮取,它会遍历所有页面并刮取所有需要的信息,但不会刮取第1页中的所有评论。

当我在这里运行spider时,结果是get:

2020-06-17 19:54:38[刮屑核心引擎]调试:爬网(200)https://www.indeed.co.uk/robots.txt> (参考:无)

2020-06-17 19:54:38[scrapy.core.engine]调试:爬网(200)https://www.indeed.co.uk/cmp/Benugo/reviews> (参考:无)

2020-06-17 19:54:38[刮屑核心引擎]调试:爬网(200)https://www.indeed.co.uk/cmp/Benugo/reviews?start=20> (参考文献:https://www.indeed.co.uk/cmp/Benugo/reviews

打印作业标题的第二页从这里开始。

我注意到第一页行返回(粗体)的referer设置为None,这是原因吗

代码:

# -*- coding: utf-8 -*-
import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor




class RevSpider(CrawlSpider):
name = 'review'
allowed_domains = ["indeed.co.uk"]
start_urls = ['https://www.indeed.co.uk/cmp/Benugo/reviews']

rules = (Rule(LinkExtractor(allow=(), restrict_xpaths=('//a[@data-tn-element="next-page"]',)), callback="parse_page", follow=True),)


def parse_page(self, response):
    all_reviews = response.xpath('//div[@class="cmp-Review"]')
    for review in all_reviews:
        job_title = review.xpath('.//a[@class="cmp-ReviewAuthor-link"][1]/text()').extract()
        print(job_title)

谢谢你,
阿诺


Tags: 代码httpsimportwwwpage评论reviewclass