Python爬虫可以通过以下方法停止:
使用键盘中断
按下 `Ctrl+C`(Windows/Linux)或 `Cmd+C`(Mac)发送终止信号。
设置超时
在爬虫中设置超时,超过该时间则自动停止。
处理异常
使用 `try-except` 块捕获特定异常,在发生错误时停止爬虫。
信号处理
使用 `signal` 模块发送 `SIGTERM` 或 `SIGINT` 信号以终止爬虫。
优雅停止
为爬虫实现优雅的停止机制,允许其在完成当前任务后停止。
使用 `atexit.register` 注册处理程序函数,在爬虫退出时调用。
使用爬虫框架的方法
在Scrapy中,可以通过 `self.crawler.engine.close_spider(self, reason)` 方法关闭爬虫。
在使用Twisted引擎的爬虫中,可以使用 `requestdone()` 方法在所有请求完成后关闭爬虫。
使用 `close()` 方法
调用爬虫对象的 `close()` 方法来关闭爬虫并释放资源。
使用环境变量或进程间通信
通过修改环境变量或在爬虫中监听特定的信号来控制爬虫的停止。
选择合适的方法取决于爬虫的具体实现和所需行为。需要注意的是,使用键盘中断可能会导致未保存的数据丢失,而优雅的停止机制可以确保爬虫在退出前完成当前任务