2010-06-28 52 views
0

我是python和scrapy的新手,因此得到了一些基本的疑問(請放棄我對某些基礎知識的無知,我很樂意學習:D)。如何整合蜘蛛和scrapy-ctl.py

現在我寫一些蜘蛛和使用scrapy-ctl.py在命令行中執行這些鍵入:

C:\Python26\dmoz>python scrapy-ctl.py crawl spider 

但我不希望兩個獨立的Python代碼和命令行來實現這個。我想以某種方式定義一個蜘蛛,並通過編寫和運行一個Python代碼來抓取網址。我可以注意到,在文件scrapy-ctl.py中,類型爲的「執行」功能已導入,但我無能爲力至於如何在包含蜘蛛的代碼中定義這個函數。有人可以解釋我如何做到這一點,如果可能的話,因爲它大大減少了工作。

在此先感謝!

回答

1

但我不想要兩個單獨的Python代碼和命令行來實現這一點。我想以某種方式定義一個蜘蛛並通過編寫和運行一個Python代碼來抓取它。

我不確定付出的努力,如果你只是想刮東西。您至少有兩種選擇:

  • 挖到scrapy/cmdline.py。您會看到這是一種調度腳本,最後將工作移交給指定命令的run方法,此處爲crawl(位於scrapy/commands/crawl.py)。看看第54行,我認爲scrapymanager.start()將在一些設置後開始你的實際命令。

  • 有點詭異的方法:使用pythons subprocess模塊在一個文件(或項目)中有一個項目並執行。

+0

sry爲延遲迴復.... 我使用的是subprocess模塊​​,它工作gr8 ...感謝您的幫助.. :) – silentNinJa 2010-07-05 10:21:45