Ошибка веб-очистки - ОШИБКА для владельца сайта: неверный домен для ключа сайта - PullRequest
0 голосов
/ 12 февраля 2020

Я пытался получить содержимое этого URL - https://www.zillow.com/homedetails/131-Avenida-Dr-Berkeley-CA-94708/24844204_zpid/ Я использовал scrapy. Вот мой код.

import scrapy
class QuotesSpider(scrapy.Spider):
    name = "quotes"
    start_urls = [
        'https://www.zillow.com/homedetails/131-Avenida-Dr-Berkeley-CA-94708/24844204_zpid/',
    ]
    def parse(self, response):
        filename = 'test.html'
        with open(filename, 'wb') as f:
            f.write(response.body)
        self.log('Saved file %s' % filename)

Я открыл очищенные данные (тест. html) и получил это содержимое. enter image description here Я пытался найти решения, и я пытался это сделать - ОШИБКА для владельца сайта: Неверный домен для ключа сайта Но это не решило мою проблему.

1 Ответ

0 голосов
/ 12 февраля 2020

Прежде всего, попробуйте этот подход и посмотрите, работает ли он:

Headerz = {
    "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
    "accept-encoding": "gzip, deflate, br",
    "accept-language": "en-US,en;q=0.9",
    "cache-control": "no-cache",
    "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
    "pragma": "no-cache",
    "sec-fetch-mode": "navigate",
    "sec-fetch-site": "cross-site",
    "sec-fetch-user": "?1",
    "upgrade-insecure-requests": "1",
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36",
}

class QuotesSpider(scrapy.Spider):
    name = "quotes"
    start_urls = [
        'https://www.zillow.com/homedetails/131-Avenida-Dr-Berkeley-CA-94708/24844204_zpid/',
    ]

    def start_requests(self):
        yield scrapy.Request(start_urls[0], callback=self.parse, headers=Headerz)

    def parse(self, response):
        filename = 'test.html'
        with open(filename, 'wb') as f:
            f.write(response.body)
        self.log('Saved file %s' % filename)

Причина, по которой мы не видим выходные данные в обычном браузере, заключается в том, что мы не используем правильные заголовки которые в противном случае всегда отправляются браузером.

Вам необходимо добавить заголовки, как указано в приведенном выше коде, или обновив их в файле settings.py.

Лучшим подходом было бы использовать ' Вращающиеся прокси-серверы вместе с «вращающимся агентом пользователя».

...