我是python和scrapy的新手,因此我得到了一些基本的怀疑(请放弃我对一些基本原理的无知,我愿意学习:D)。
现在我正在编写一些蜘蛛,并通过输入命令行使用scrapy-ctl.py实现它们:
C:\Python26\dmoz>python scrapy-ctl.py crawl spider
但是我不想要两个单独的python代码和一个命令行来实现它。我想以某种方式定义一个蜘蛛并通过编写和运行单个python代码来抓取它。我可以注意到在scrapy文件中 - ctl.py,类型 function 的'execute'被导入,但我对如何在包含spider的代码中定义此函数一无所知。有人可以解释我如何执行此操作,如果是可能因为它大大减少了工作。
提前致谢!!
答案 0 :(得分:1)
但我不想要两个单独的python代码和一个命令行来实现它。我想以某种方式定义一个蜘蛛并通过编写和运行单个python代码来抓取它。
如果你只是想要刮掉一些东西,我不确定这些努力会付出代价。您至少有两个选择:
加入scrapy/cmdline.py
。您将看到这是一种调度脚本,最后将工作移交给指定命令的run
方法,此处为crawl
(在scrapy/commands/crawl.py
中)。看看第54行,我认为scrapymanager.start()
将在完成一些设置后开始实际命令。
一个小巧的方法:使用pythons subprocess
模块将一个项目和执行项目放在一个文件(或项目)中。