#58 Парсинг веб-страниц (часть 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":
Запуск в терминале:
<папка, содержащая файл "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.
- Логирование: Логирование - еще один полезный вариант получения информации о работе паука. Хотя это неудобно, у него есть следующие преимущества: если логи понадобятся снова в будущем, они будут доступны во всех последующих запусках.
ЗАМЕТКА: Вещь в том, что пауки имеют высокий шанс перестать работать в будущем...