1

我正在使用scrapy从网页中抓取信息。我已经编写了运行良好的蜘蛛代码。我还有一些其他 python 代码文件可以优化爬取的数据。

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

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

批处理文件的内容:

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

4 回答 4

3

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

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

(我可能记错了,这对我来说都是很久以前的事情了,所以如果我错了请不要打我。)

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

call scrapy crawl mySpider -o outputData.json -t json
于 2013-05-08T17:58:04.000 回答
0

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

start "" "scrapy" crawl mySpider -o outputData.json -t json
于 2013-05-08T18:00:12.747 回答
0

只要您的批处理文件没有变得比这更复杂(没有 for 循环等),然后将其放在批处理文件的顶部。

@setlocal enabledelayedexpansion
于 2013-05-08T18:00:47.277 回答
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是scrapy的名字

于 2018-10-31T10:43:38.700 回答