Как использовать PyCharm для отладки проектов Scrapy

Я работаю над Scrapy 0.20 с Python 2.7. Я обнаружил, что PyCharm имеет хороший отладчик Python. Я хочу протестировать своих пауков Scrapy, используя это. Кто-нибудь знает, как это сделать, пожалуйста?

Что я пробовал

На самом деле я пытался запустить паука как скрипт. В результате я создал этот скрипт. Затем я попытался добавить проект Scrapy в PyCharm в качестве модели:

File->Setting->Project structure->Add content root. 

Но я не знаю, что еще мне нужно сделать

5 Solutions collect form web for “Как использовать PyCharm для отладки проектов Scrapy”

Команда scrapy – это скрипт python, который означает, что вы можете запустить его изнутри PyCharm.

Когда вы изучаете двоичный файл scrapy ( which scrapy ), вы заметите, что на самом деле это скрипт python:

 #!/usr/bin/python from scrapy.cmdline import execute execute() 

Это означает, что команда, подобная scrapy crawl IcecatCrawler также может быть выполнена следующим образом: python /Library/Python/2.7/site-packages/scrapy/cmdline.py crawl IcecatCrawler

Попробуйте найти пакет scrapy.cmdline. В моем случае местоположение было здесь: /Library/Python/2.7/site-packages/scrapy/cmdline.py

Создайте конфигурацию запуска / отладки внутри PyCharm с этим скриптом как скриптом. Заполните параметры скрипта командой scrapy и пауком. В этом случае crawl IcecatCrawler .

Как это: Конфигурация запуска / отладки PyCharm

Поместите свои точки останова в любом месте вашего кода сканирования, и он должен работать ™.

Вам просто нужно это сделать.

Создайте файл Python в папке искателя в вашем проекте. Я использовал main.py.

  • проект
    • Гусеничный трактор
      • Гусеничный трактор
        • Пауки
      • main.py
      • scrapy.cfg

Внутри main.py введите этот код ниже.

 from scrapy import cmdline cmdline.execute("scrapy crawl spider".split()) 

И вам нужно создать «Запустить конфигурацию», чтобы запустить main.py.

Сделав это, если вы поместите контрольную точку в свой код, она остановится там.

Я запускаю scrapy в virtualenv с Python 3.5.0, и установка параметра «script» в /path_to_project_env/env/bin/scrapy решила проблему для меня.

Чтобы добавить бит к принятому ответу, спустя почти час я обнаружил, что мне нужно было выбрать правильную конфигурацию запуска из раскрывающегося списка (около центра панели инструментов значка), затем нажмите кнопку «Отладка», чтобы заставить ее работать. Надеюсь это поможет!

Я также использую PyCharm, но я не использую его встроенные функции отладки.

Для отладки я использую ipdb . Я установил комбинацию клавиш для вставки import ipdb; ipdb.set_trace() import ipdb; ipdb.set_trace() в любой строке, я хочу, чтобы точка import ipdb; ipdb.set_trace() произошла.

Затем я могу ввести n для выполнения следующего оператора, s для входа в функцию, введите любое имя объекта, чтобы увидеть его значение, измените среду исполнения, введите c чтобы продолжить выполнение …

Это очень гибко, работает в средах, отличных от PyCharm, где вы не контролируете среду исполнения.

Просто введите свою виртуальную среду pip install ipdb и поместите import ipdb; ipdb.set_trace() import ipdb; ipdb.set_trace() в строке, где вы хотите приостановить выполнение.

  • Преобразование латинской строки в unicode в python
  • Как извлечь данные с динамических сайтов, таких как Flipkart, используя селен и Scrapy?
  • Повторить паттерн Scrapy по сохраненным данным
  • Как обойти защиту бот / ddos ​​от облачной защиты в Scrapy?
  • xpath не содержит A и B
  • Scrapy - При вызове scrapy из скрипта, как немедленно вернуть словарь в процесс, вместо экспорта в json-файл
  • Использование промежуточного программного обеспечения для предотвращения скрининга с веб-сайтов с двойным посещением
  • Проблемы с установкой Scrapy на 10.9 Mavericks
  • Python - лучший язык программирования в мире.