在批处理文件中使用scrapy crawl命令时,继续批处理脚本命令

时间:2013-05-08 17:36:11

标签: python batch-file scrapy

我正在使用scrapy从网页抓取信息。 我写了蜘蛛代码,工作正常。我还有一些其他的python代码文件可以优化已爬网的数据。

总而言之,我有一个批处理文件,我首先使用“Scrapy Crawl”命令,然后运行我的python文件来优化已爬网的信息。

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

批处理文件的内容:

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

4 个答案:

答案 0 :(得分:3)

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

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

(我可能会误解,这对我来说很久以前,所以如果我错了,请不要打我太厉害。)

如果我的猜测是正确的,这就是您遇到麻烦的原因,那是因为scrapy本身就是批处理文件。然后就这样称呼它:

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

只要你的批处理文件没有那么复杂(没有循环等),就把它放在批处理文件的顶部。

@setlocal enabledelayedexpansion

答案 3 :(得分:0)

对于在Windows Server 2008 R2中运行“ Scrap crawl scrapename”命令,请使用以下命令创建bat文件:

CD /D %C:\Users\USERNAME\ScrapProjectName%
call C:\Users\USERNAME\Anaconda3\python.exe -m  scrapy crawl bo

bo是易记名称