Привет всем,
Надеюсь, у вас все хорошо,
Я создаю базового 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)
Спасибо,
Арно.