Я относительно новичок в scrapy и мне интересно, есть ли способ передать реферер в команду response.follow (). Я пытаюсь вычистить цены на недвижимость из рук в руки сайта, и у меня возникают проблемы с получением копий для перехода по ссылкам на нумерацию страниц. Скребок отлично работает на главной странице, но сайт не позволит ему получить доступ ни к одной из других страниц.
Я пытался открыть вторую страницу напрямую, используя команду fetch в оболочке scrapy, но это не сработало. Я открыл страницу, используя вид для проверки элемента, и обнаружил следующую ошибку:
"Доступ к XMLHttpRequest в 'https://someaddress.com из источника' null 'был заблокирован политикой CORS: в запрошенном ресурсе отсутствует заголовок' Access-Control-Allow-origin '."
любой совет или ресурсы будут очень признательны.
-Спасибо
import scrapy
class cwSpider(scrapy.Spider):
name = 'cushman2'
custom_settings = {
'DUPEFILTER_DEBUG': 'True',
}
start_urls = ['https://cwstevenson.ca/properties/advance-search-properties/']
def parse(self, response):
# follow links to author pages
for href in response.css('.wpl_prp_bot a::attr(href)'):
yield response.follow(href, self.parse_property)
# follow pagination links
for href in response.css('li.next a::attr(href)'):
yield response.follow(href, self.parse)
def parse_property(self, response):
response.request.headers.get('Referrer', None)
def extract_with_css(query):
return response.css(query).extract()
yield {
'address' : extract_with_css('h1.title_text::text'),
'Prop_Type': extract_with_css('.ldetailscont2 p.ldetailsinfo::text')[0],
'Land Area': extract_with_css('.ldetailscont2 p.ldetailsinfo::text')[1],
'Price': extract_with_css('.ldetailscont2 p.ldetailsinfo::text')[2],
'Listing_Type': extract_with_css('.ldetailscont2 p.ldetailsinfo::text')[3],
'Area_Avail': extract_with_css('.ldetailscont2 p.ldetailsinfo::text')[4],
'Prop_Taxes': extract_with_css('.ldetailscont2 p.ldetailsinfo::text')[5],
}