Проблема с scrapy с разбивкой на страницы с помощью ScrapyCrawl - PullRequest
0 голосов
/ 16 июня 2020


Привет всем,
Надеюсь, у вас все хорошо,
Я создаю базового c паука, используя CrawlSpider для обхода веб-сайта Indeed, я выбрал случайные отзывы компании (просто для обучения).
Пожалуйста, посмотрите мой код ниже.
Есть 84 отзыва, но только 64 очищаются, он просматривает все страницы и очищает всю необходимую информацию, но все обзоры со страницы 1 не очищаются.

Когда я запускаю паука, вот результат get:

2020-06-17 19:54:38 [scrapy.core.engine] DEBUG: Crawled (200) https://www.indeed.co.uk/robots.txt> (referer: None)

2020-06-17 19:54:38 [scrapy.core.engine] DEBUG: Crawled (200) https://www.indeed.co.uk/cmp/Benugo/reviews> (referer: None )

2020-06-17 19:54:38 [scrapy.core.engine] ОТЛАДКА: просканировано (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)

Спасибо,
Арно.

...