如何将 scrapy shell 与 url 和基本身份验证凭据一起使用?
How can use scrapy shell with url and basic auth credentials?
我想使用 scrapy shell
并测试 url 的响应数据,这需要基本的身份验证凭据。我试图查看 scrapy shell 文档,但在那里找不到。
我试过 scrapy shell 'http://user:pwd@abc.com'
但没用。
有人知道我如何实现吗?
确保在设置中启用了 HTTPAuthMiddleware 然后定义:
class MySpider(CrawSpider):
http_user = 'username'
http_pass = 'password'
...
作为蜘蛛中的 class 个变量。
此外,如果在设置中启用了中间件,则无需在 url 中指定登录凭据。
如果你只想使用 shell,你可以这样做:
$ scrapy shell
并在 shell 内:
>> from w3lib.http import basic_auth_header
>> from scrapy import Request
>> auth = basic_auth_header(your_user, your_password)
>> req = Request(url="http://example.com", headers={'Authorization': auth})
>> fetch(req)
as fetch
使用当前请求更新 shell 会话。
我想使用 scrapy shell
并测试 url 的响应数据,这需要基本的身份验证凭据。我试图查看 scrapy shell 文档,但在那里找不到。
我试过 scrapy shell 'http://user:pwd@abc.com'
但没用。
有人知道我如何实现吗?
确保在设置中启用了 HTTPAuthMiddleware 然后定义:
class MySpider(CrawSpider):
http_user = 'username'
http_pass = 'password'
...
作为蜘蛛中的 class 个变量。
此外,如果在设置中启用了中间件,则无需在 url 中指定登录凭据。
如果你只想使用 shell,你可以这样做:
$ scrapy shell
并在 shell 内:
>> from w3lib.http import basic_auth_header
>> from scrapy import Request
>> auth = basic_auth_header(your_user, your_password)
>> req = Request(url="http://example.com", headers={'Authorization': auth})
>> fetch(req)
as fetch
使用当前请求更新 shell 会话。