2010-06-28 98 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