# -*- 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. Он представляет собой селектор якоря, как указано в уроке на сайте для скрининга, но ничто не очищается. Что здесь не так?
В allowed_domains
вы должны указать только домен без схемы (www.gumtree.com.au). В противном случае scrapy блокирует все "внешние" запросы, считая, что их домен не соответствует разрешенным.