Scrapy не выполняет данные запросы

1
# -*- coding: utf-8 -*-
import logging

import scrapy
from scrapy.shell import inspect_response


class SuvlistingsSpider(scrapy.Spider):
    name = 'SuvListings'
    allowed_domains = ['https://www.gumtree.com.au']
    start_urls = [
        'https://www.gumtree.com.au/s-cars-vans-utes/sydney/carbodytype-suv/forsaleby-ownr/c18320l3003435/',
    ]

    def parse(self, response):
        self.log('Received response for listings page', level=logging.INFO)

        main = response.css('.panel-body.panel-body--flat-panel-shadow.user-ad-collection__list-wrapper')[-1]
        for a in main.css('a'):
            req = response.follow(a, callback=self.parse_item)
            yield req

    def parse_item(self, response):
        0/0
        yield {
            'price': response.xpath('normalize-space(//div[@id="ad-price"]/div/span[1])').extract(),
        }

Вышеприведенный код не вызывает исключение. У меня это работает в отладке в Pycharm. Он представляет собой селектор якоря, как указано в уроке на сайте для скрининга, но ничто не очищается. Что здесь не так?

Теги:
scrapy

1 ответ

3
Лучший ответ

В allowed_domains вы должны указать только домен без схемы (www.gumtree.com.au). В противном случае scrapy блокирует все "внешние" запросы, считая, что их домен не соответствует разрешенным.

  • 1
    Именно так. Не исключение, но вы можете увидеть, сколько запросов было отфильтровано в статистике scrapy в «offsite / Filter» или «Offsite / domains».
  • 0
    Ух ты, да, вот и все: "вне сайта / отфильтровано": 24, `. Все еще на кривой обучения

Ещё вопросы

Сообщество Overcoder
Наверх
Меню