我想使用scrapy shell
並測試需要基本身份驗證憑據的url的響應數據。我試圖檢查scrapy shell文檔,但是我找不到它。如何使用帶網址和基本認證憑證的scrapy shell?
我試過scrapy shell 'http://user:[email protected]'
,但沒有奏效。 有人知道我能做到嗎?
我想使用scrapy shell
並測試需要基本身份驗證憑據的url的響應數據。我試圖檢查scrapy shell文檔,但是我找不到它。如何使用帶網址和基本認證憑證的scrapy shell?
我試過scrapy shell 'http://user:[email protected]'
,但沒有奏效。 有人知道我能做到嗎?
,如果你希望只使用外殼,你可以做這樣的事情:
$ scrapy 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)
爲fetch
使用當前的請求,以更新的shell會話。
確保HTTPAuthMiddleware在設置中啓用然後只是定義:
class MySpider(CrawSpider):
http_user = 'username'
http_pass = 'password'
...
在你的蜘蛛類變量。
此外,如果中間件已在設置中啓用,則不需要在url中指定登錄憑據。
我想用shell而不是蜘蛛 – Rohanil
shell使用項目資源 –
@Rohanil嘗試'scrapy shell' http://www.example.org',並確保你已經將中間件包含在你的設置中,同時指定登錄憑證作爲類變量,因爲它們在我的示例中被命名爲 –
你能分享你如何登錄蜘蛛內嗎? – eLRuLL
我在蜘蛛中使用[HttpAuthMiddleware](https://doc.scrapy.org/en/latest/topics/downloader-middleware.html#scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware),但我想用shell而不是蜘蛛。 – Rohanil
只要您從項目目錄運行shell命令,它就會工作。中間件也不需要url中的'user:password',中間件爲你處理 –