【问题标题】:Stop Scrapy Spider Running in a Cron Job停止在 Cron 作业中运行的 Scrapy Spider
【发布时间】:2019-03-13 18:20:03
【问题描述】:

我有一个 Scrapy Spider,我已将其安排为 Cron 作业。 我正在使用 -o 选项将我的数据写入 csv 文件。

scrapy crawl my_spider -o my_csv.csv

我正在使用 Crawlera,但我没有请求。我试图关闭我的蜘蛛并将输出写入 csv。 Scrapy 尚未将输出写入 csv,我担心如果我终止该进程,数据会丢失。

有没有办法优雅地关闭蜘蛛,作为 cron 作业运行,而无需等待爬网“完成”?

【问题讨论】:

    标签: python cron scrapy web-crawler


    【解决方案1】:

    首先,恐怕你的scraper根本没有运行,否则你会看到一些数据输出到CSV中,因为scrapy在CSV中同时写入数据,而不是在scrapy进程完成时。

    无论如何,如果它正在运行,请阅读以下内容。

    运行ps -aux | grep scrapy,找到scrapy进程的PID

    只需发送一次kill PID,它就会正常关闭

    注意:

    不要多次发送kill PID,否则您的进程将在未完成剩余请求的情况下被 KILLED

    【讨论】:

    • 蜘蛛正在运行。我可以看到进程并主动查看日志。
    • 我使用了kill,进程立即停止,将数据写入csv。
    猜你喜欢
    • 1970-01-01
    • 2017-12-23
    • 2018-05-13
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多