CoderCastrov logo
CoderCastrov
Парсер данных

#58 Парсинг веб-страниц (часть 2): Создание паука

#58 Парсинг веб-страниц (часть 2): Создание паука
просмотров
2 мин чтение
#Парсер данных

В этой части давайте создадим паука для создания простого набора данных из веб-сайта.

Создание виртуальной среды

  • Убедитесь, что Anaconda, Python и Visual Studio Code загружены на ваш компьютер.
  • Создайте виртуальную среду в Anaconda.navigator
  • В терминале введите следующие команды:

conda install -c anaconda scipy <перейдите в путь, где вы хотите сохранить папку проекта> mkdir projects cd projects scrapy startproject worldometers cd worldometers scrapy genspider countries www.worldometers.info/world-population/population-by-country/

  • Перейдите в папку, где вы сохранили папку "projects"

откройте папку "spiders" и откройте файл "countries.py", который вы только что сгенерировали выше.

Создание паука для получения названия страны, года и населения

Внутри файла "countries.py":

Source code

Запуск в терминале:

<папка, содержащая файл "countries.py"> scrapy crawl countries

Сохранение результатов после парсинга в файл csv (может быть json, xml в соответствии с вашими предпочтениями):

scrapy crawl countries -o population_by_countries.csv

Отладка паука

Есть 4 основных метода:

  • Команда Parse: Самый простой способ проверить вывод паука - использовать команду parse. Она позволяет проверить поведение разных частей паука на уровне метода. Она имеет преимущества гибкости и простоты в использовании, но не позволяет отлаживать код внутри метода.
  • Scrapy Shell: Scrapy shell - это полнофункциональная оболочка Python, загруженная с тем же контекстом, который вы получили бы в методах обратного вызова вашего паука. Вам просто нужно указать URL, и Scrapy Shell позволит вам взаимодействовать с теми же объектами, с которыми ваш паук работает в своих обратных вызовах, включая объект ответа. Хотя команда parse очень полезна для проверки поведения паука, она не помогает проверить, что происходит внутри обратного вызова, кроме отображения полученного ответа и вывода. В этом случае в действие вступает Scrapy Shell.
  • Открыть в браузере: Иногда вы просто хотите просмотреть внешний вид ответа в браузере, для этого можно использовать функцию open_in_browser.
  • Логирование: Логирование - еще один полезный вариант получения информации о работе паука. Хотя это неудобно, у него есть следующие преимущества: если логи понадобятся снова в будущем, они будут доступны во всех последующих запусках.

ЗАМЕТКА: Вещь в том, что пауки имеют высокий шанс перестать работать в будущем...