如何用 PyCharm 除錯 scrapy 專案

weixin_34162629發表於2017-07-24

原理:

首先 scrapy 命令其實就是一個python指令碼,你可以使用 which scrapy 檢視該指令碼的內容:

from scrapy.cmdline import execute

sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(execute())

而命令列執行scrapy專案的方式如下:

scrapy crawl dmoz             #注意,其中的dmoz是專案目錄下的spiders目錄下的dmoz.py檔案裡的 name 屬性(不是檔案裡面的類名,也不是檔名字首),我的工程是: Dmoz/spiders/dmoz.py:

# -*- coding: utf-8 -*-

import scrapy

class DmozSpider(scrapy.Spider):
    name = "dmoz"
    allowed_domains = ["dmoz.org"]
    start_urls = [
        "http://www.kc0011.net/",
        # "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
    ]

    def parse(self, response):
        print(response.text)

 

根據這種執行方式,上面的執行可以用如下命令來代替:

python  /home/hzh/.virtualenvs/env35/lib/python3.5/site-packages/scrapy/cmdline.py  crawl  dmoz

 

下面介紹用pycharm除錯scrapy工程:

先用scrapy startproject Dmoz 建立一個scrapy工程,要在pycharm裡除錯該Dmoz工程:

1、先用pycharm直接開啟Dmoz目錄,這樣就將該目錄轉換成了pycharm工程(其實就是建立了一個.idea目錄)

2、在專案的Run/Debug Configuration裡設定:

script:     /home/hzh/.virtualenvs/env35/lib/python3.5/site-packages/scrapy/cmdline.py

script parameters:   crawl dmoz

working directory:        /home/hzh/delll/scrapy/Dmoz

然後勾選:    Show command line afterwards 選項

 

這樣就可以除錯了。

 

相關文章