我正在使用scrapy从网页抓取信息。 我写了蜘蛛代码,工作正常。我还有一些其他的python代码文件可以优化已爬网的数据。
总而言之,我有一个批处理文件,我首先使用“Scrapy Crawl”命令,然后运行我的python文件来优化已爬网的信息。
问题是批处理脚本在“Scrapy Crawl”命令结束时停止,并且不会在我的批处理文件中继续执行之后的行。 我该如何解决这个问题?
批处理文件的内容:
CD "spiders_folder"
scrapy crawl mySpider -o outputData.json -t json
python refineData.py
答案 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是易记名称