Как отлаживать скрипты Scrapy с использованием PyCharm
Table Of Content
- Окно инструментов отладки - Справка | PyCharm
- Оно отображает вывод, сгенерированный сеансом отладки вашего приложения. Если вы отлаживаете несколько...
- Scrapy: Мощный парсинг и сканирование веб-сайтов с использованием Python
- Python Scrapy Tutorial - Узнайте, как парсить веб-сайты и создавать мощный веб-сканер с помощью Scrapy и Python
Недавно я начал использовать мощный фреймворк для парсинга с названием Scrapy, и мне он очень нравится. В этом руководстве я использовал скрипт, который собирает все объявления о вакансиях с Craiglist (Нью-Йорк). Скрипт можно найти в моем профиле на GitHub. Однако, в процессе сбора нужных мне данных, а именно номеров телефонов, я получал странные результаты, то есть много ложных срабатываний. Это меня заинтриговало, и я хотел узнать, что происходит под капотом, и в голову мне пришла идея использовать мощь отладки для этой цели. Первое, что я сделал, конечно же, это гуглил, как я могу это сделать. После того, как я наткнулся на множество ссылок в результатах поиска, я так и не нашел ничего, что бы удовлетворило мои потребности.
Так что мне пришлось пройти через процесс поиска способа настроить отладчик, и я хотел поделиться с другими людьми тем, что я узнал в трудном, но увлекательном пути.
Используемые инструменты: Python 3.6.5 Scrapy 1.5 PyCharm Community Edition
Поскольку мы собираемся отлаживать скрипт Scrapy, нам нужно знать расположение фреймворка Scrapy на нашей машине. Это довольно просто. Мы просто должны написать эту простую команду в терминале и сохранить результат, так как нам понадобится это позже.
which scrapy
Прежде всего, мы начинаем с того, что ставим точку останова в одной или нескольких строках нашего кода. Поставить точку останова в PyCharm довольно просто. Вам просто нужно щелкнуть рядом с той строкой кода, в которой вы хотите поставить ее.
После того, как мы выполнили первый шаг, мы можем перейти к следующему шагу, который заключается в настройке отладчика.
Чтобы настроить отладчик, найдите вкладку Run на панели инструментов редактора PyCharm и затем нажмите Debug.
После нажатия на опцию Debug, появится небольшое окно. Мы можем увидеть опцию "Edit Configurations..." в окне Debug. Мы должны нажать на нее, чтобы настроить отладчик.
После нажатия на опцию "Edit Configurations...", откроется окно Run/Debug Configurations. В левом углу этого окна мы можем увидеть множество опций, включая одну (+), которую мы ищем. Мы должны нажать на плюс (+), после чего увидим выпадающее меню с опциями, такими как "Compound, Jupyter Notebook, Python, Python docs, Python tests, Tox". Мы должны выбрать опцию "Python".
После нажатия на опцию Python, наконец-то откроется окно настройки, и мы наконец-то начнем настраивать наш отладчик.
Прежде всего, мы видим поле, в которое мы можем ввести имя отладчика. В этом руководстве мы оставим его по умолчанию (Unnamed).
На вкладке "Configuration" этого окна нам нужно пройти через четыре шага:
/usr/local/bin/scrapy
- Напишите следующую команду в поле "Script parameters:"
crawl <имя паука> -o any_name.csv
-
Выберите тот же Python интерпретатор, который вы используете в своем проекте. В моем случае это Python 3.6.5. Вы можете найти все интерпретаторы Python, нажав на кнопку раскрывающегося списка рядом с соответствующим полем.
-
Выберите правильную рабочую директорию, то есть директорию, где находятся ваш проект и пауки, которые вы хотите отлаживать.
После того, как мы сделали все эти настройки, мы готовы. Просто нажмите кнопку Debug внизу текущего окна (Debug - Unnamed), и отладчик запустится.
Поскольку мы настроили и запустили отладчик, мы можем использовать мощь отладки, чтобы наблюдать шаг за шагом, что происходит под капотом при выполнении кода.
Кнопки, показанные ниже, обрамлены красным прямоугольником, и имеют следующие функции:
Внизу редактора PyCharm мы можем увидеть окно Debug. В окне "Frames" мы можем увидеть, как выполнялся код, то есть иерархию классов и функций, пока он не достиг той части кода, которую мы пытаемся отлаживать. Там есть окно "Variables", которое мы можем развернуть и посмотреть, что мы получаем там.
Мы можем использовать кнопку "Evaluate", последнюю кнопку из вышеупомянутых, чтобы посмотреть, как работает определенная часть кода.
В этом случае, если мы напишем "response.body" и нажмем "Evaluate", будет получено тело определенного URL, и мы можем просмотреть его, нажав кнопку "View" слева, чтобы увидеть полученные результаты.
Мы также можем использовать силу точек останова, чтобы настроить их так, как нам нужно. Мы можем установить условия в точках останова, чтобы видеть выполнение заданной части кода только тогда, когда условие выполняется.
Щелкнув правой кнопкой мыши на точке останова, откроется окно, в котором мы сможем задать условие в поле "Condition:". Нажмите "Done", и после этого вы увидите небольшой вопросительный знак рядом с этой точкой останова.
Заключение
Как видите, довольно легко настроить отладчик в PyCharm, и это действительно очень полезно. Тем не менее, самые простые вещи иногда наиболее пренебрегаемы, и поэтому я хотел внести свой вклад в уже существующее большое количество знаний о парсинге и помочь другим, особенно новичкам в программировании.
Надеюсь, вам понравилось и вы нашли это полезным в своей работе.
Ссылки: