Как отправить пользовательские заголовки в запросе Scrapy Splash? - PullRequest
5 голосов
/ 14 мая 2019

Мой файл spider.py выглядит так:

def start_requests(self):
    for url in self.start_urls:
        yield scrapy.Request(
            url,
            self.parse,
            headers={'My-Custom-Header':'Custom-Header-Content'},
            meta={
                'splash': {
                    'args': {
                        'html': 1,
                        'wait': 5,
                    },
                }
            },
        )

И мой синтаксический анализ, как показано ниже:

def parse(self, response):
    print(response.request.headers)

Когда я запускаю своего паука, в качестве заголовка выводится нижняя строка:

{
    b'Content-Type': [b'application/json'], 
    b'Accept': [b'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'],
    b'Accept-Language': [b'en'], 
    b'User-Agent': [b'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.2309.372 Safari/537.36'], 
    b'Accept-Encoding': [b'gzip,deflate']
}

Как видите, здесь нет пользовательского заголовка, который я добавил в запрос Scrapy.

Кто-нибудь может мне помочь с добавлением пользовательских значений заголовка для этого запроса?

Заранее спасибо.

1 Ответ

1 голос
/ 17 мая 2019

Если вы хотите, чтобы splash использовал ваши заголовки в запросе к указанному вами URL, тогда вы должны добавить заголовки к части args вместе с html и wait.

...