скрап-оболочка: я вижу только открытый паук, а затем получаю тайм-аут для страниц Zalando

Когда я нахожусь в оболочке scrapy и запускаю:

fetch('https://www.google.nl')

Затем я получаю нормальный ответ:

2020-11-19 12:42:00 [scrapy.core.engine] INFO: Spider opened
2020-11-19 12:42:00 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.google.nl> (referer: None)

Но когда я делаю это для страниц Zalando, например:

fetch('https://www.zalando.de/nike-sportswear-pant-jogginghose-ni121a09o-c11.html')

Тогда я вижу только:

2020-11-19 12:46:06 [scrapy.core.engine] INFO: Spider opened

И через некоторое время я получаю тайм-аут. Почему это не работает для страниц Zalando? Или: что я должен изменить, чтобы это работало?


person Sander van den Oord    schedule 19.11.2020    source источник
comment
Получив полезный ответ, я понял, что этот вопрос + ответы связаны: title="scrapy shell, как изменить пользовательский агент"> stackoverflow.com/questions/25429671/   -  person Sander van den Oord    schedule 19.11.2020


Ответы (1)


Включите пользовательский агент в заголовки вашего запроса, это сработало для меня:

from scrapy import Request
url='https://www.zalando.de/nike-sportswear-pant-jogginghose-ni121a09o-c11.html'
req = Request(url, headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0'
})
fetch(req)

Может быть мерой против ботов

person renatodvc    schedule 19.11.2020
comment
Спасибо, сработало отлично :) Я добавил еще Accept-Language в ваши заголовки: {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/86.0.4240.198 Safari/537.36", "Принять язык": "де"} - person Sander van den Oord; 19.11.2020