如何在 Scrapy Splash 请求中发送自定义 headers?
How to send custom headers in a Scrapy Splash request?
我的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)
当我 运行 我的蜘蛛时,下面的行被打印为 header:
{
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 请求中的自定义 header。
有人可以帮我为此请求添加自定义 header 值吗?
提前致谢。
如果你想让 splash 在你指定的 url 的请求中使用你的 headers,那么你应该将 headers 添加到 args
部分,连同html
和 wait
:
meta={
'splash': {
'args': {
'html': 1,
'wait': 5,
'headers': {
'My-Custom-Header': 'Custom-Header-Content',
},
},
}
}
我的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)
当我 运行 我的蜘蛛时,下面的行被打印为 header:
{
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 请求中的自定义 header。
有人可以帮我为此请求添加自定义 header 值吗?
提前致谢。
如果你想让 splash 在你指定的 url 的请求中使用你的 headers,那么你应该将 headers 添加到 args
部分,连同html
和 wait
:
meta={
'splash': {
'args': {
'html': 1,
'wait': 5,
'headers': {
'My-Custom-Header': 'Custom-Header-Content',
},
},
}
}