Как использовать оболочку Scrapy с URL-адресом и базовыми учетными данными?

Я хочу использовать scrapy shell и проверьте данные ответа для URL, который требует базовых учетных данных. Я попытался проверить документацию оболочки Scrapy, но я не смог найти ее там.

Я пробовал с scrapy shell 'http://user:pwd@abc.com' но это не сработало. Кто-нибудь знает, как мне этого добиться?

2 ответа

Решение

Если вы хотите использовать только оболочку, вы можете сделать что-то вроде этого:

$ 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 использует текущий запрос для обновления сеанса оболочки.

Да, с промежуточным ПО httpauth.

Убедитесь, что HTTPAuthMiddleware включен в настройках, а затем просто определите:

class MySpider(CrawSpider):
    http_user = 'username'
    http_pass = 'password'
    ...

как переменные класса в вашем пауке.

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

Другие вопросы по тегам