Где Scrapy на самом деле выполняет html-запрос?

#python #web-scraping #scrapy

#python #очистка веб-страниц #scrapy

Вопрос:

Я использую библиотеку Scrapy (Scrapy ==1.6.0) с Python3. Мне интересно, где в коде Scrapy на самом деле выполняет HTML-запрос? Я хочу установить там точку останова, чтобы я мог точно видеть, какие заголовки / файлы cookie / URL-адреса / и пользовательский агент фактически передаются.

Кроме того, где именно также получен ответ? Прямо сейчас моему spider не удается найти какие-либо страницы, поэтому я предполагаю, что получаю либо пустой HTML-документ, либо ошибку 403, однако я понятия не имею, где искать подтверждение этого.

Может ли кто-нибудь, знакомый с библиотекой scrapy, указать мне, где именно в коде я могу проверить эти параметры?

Ответ №1:

Я верю, что вы можете проверить scrapy/core/engine.py метод _download. Хотя я бы посоветовал вам использовать scrapy shell. Это позволит вам выполнить конкретный запрос, проверить ответ, открыть ответ в браузере, чтобы увидеть, что было получено Scrapy. Также с немного большей настройкой вы можете импортировать свой spider в свою оболочку и вызвать определенный метод вашего spider и поставить там точку останова.

Если вашему spider не удается найти ни одной страницы, то проблема, скорее всего, в вашем spider, а не в фреймворке.

Комментарии:

1. Что такое оболочка scrapy? Есть ли место, где я могу найти документацию по этому вопросу? Или, что еще лучше, на примере stack overflow code snipper я могу посмотреть, как это реализовать?

2. У Scrapy есть отличная документация из их коробки на их официальном сайте. Вот глава о оболочке Scrapy. Пожалуйста, уделите 20-30 минут своего времени и внимательно прочитайте это. docs.scrapy.org/en/latest/topics/shell.html

3. Большое спасибо, читаю это сейчас, это именно то, что мне было нужно