2013-05-08 166 views
0

我正在使用scrapy抓取网页中的信息。 我写了可以正常工作的蜘蛛代码。我还有一些其他的Python代码文件可以细化抓取的数据。在批处理文件中使用scrapy抓取命令时继续批处理脚本命令

把它放在一起,我有一个批处理文件,其中我首先使用“Scrapy Crawl”命令,然后运行我的python文件以优化抓取的信息。

问题是,批处理脚本在“Scrapy Crawl”命令的末尾停止,并且不会继续执行批处理文件中的行。 我该如何解决这个问题?

批处理文件的内容:它们的执行结束后

CD "spiders_folder" 
scrapy crawl mySpider -o outputData.json -t json 
python refineData.py 
+0

谁是scrapy? – Endoro 2013-05-08 17:52:08

+0

什么操作系统?大写'CD'表明它是Windows的东西?我想'批处理文件'标签已经意味着,只是为了确保。 – Alfe 2013-05-08 17:53:19

+0

Scrapy是一个快速的高级别屏幕抓取和网页爬行框架,用于抓取网站并从其页面中提取结构化数据。 – programmingIsFun 2013-05-08 17:55:05

回答

3

批处理文件的逻辑来处理其他程序的子程序返回从那里回原始批处理文件调用。 AFAICR规则的例外是如果一个批处理文件调用另一个批处理文件。在这种情况下,执行不是作为子程序处理,而是交给另一个批处理文件。

除非您使用call来调用第二个批处理文件。

(我可能是错误的,这是大家很早就对我,所以请不要打我太用力,如果我错了。)

如果我的猜测是正确的,这是原因你的麻烦,这是因为scrapy本身就是一个批处理文件。然后,只需调用它是这样的:

call scrapy crawl mySpider -o outputData.json -t json 
0

我不知道“scrapy”,但你可以尝试:

start "" "scrapy" crawl mySpider -o outputData.json -t json 
0

只要您的批处理文件并没有得到任何比这更复杂(没有for循环等),然后把它放在批处理文件的顶部。

@setlocal enabledelayedexpansion 
+0

为什么'延迟扩展'?没有代码块。 – Endoro 2013-05-08 18:03:31