淺析python實現(xiàn)scrapy定時執(zhí)行爬蟲
項目需要程序能夠放在超算中心定時運行,于是針對scrapy寫了一個定時爬蟲的程序main.py ,直接放在scrapy的存儲代碼的目錄中就能設(shè)定時間定時多次執(zhí)行。
最簡單的方法:直接使用Timer類
import time import os while True: os.system("scrapy crawl News") time.sleep(86400) #每隔一天運行一次 24*60*60=86400s或者,使用標準庫的sched模塊 import sched #初始化sched模塊的scheduler類 #第一個參數(shù)是一個可以返回時間戳的函數(shù),第二個參數(shù)可以在定時未到達之前阻塞。 schedule = sched.scheduler ( time.time, time.sleep ) #被周期性調(diào)度觸發(fā)的函數(shù) def func(): os.system("scrapy crawl News") def perform1(inc): schedule.enter(inc,0,perform1,(inc,)) func() # 需要周期執(zhí)行的函數(shù) def mymain(): schedule.enter(0,0,perform1,(86400,)) if __name__=="__main__": mymain() schedule.run() # 開始運行,直到計劃時間隊列變成空為止關(guān)于cmd的實現(xiàn)方法,本人在單次執(zhí)行爬蟲程序時使用的是 cmdline.execute("scrapy crawl News".split())但可能因為cmdline是scrapy模塊中自帶的,所以定時執(zhí)行時只能執(zhí)行一次就退出了。
小伙伴有種方法是使用
import subprocess subprocess.Popen("scrapy crawl News")
她的程序運行正??梢远〞r多次執(zhí)行,而我的卻直接退出了,改為
from subprocess import Popen subprocess.Popen("scrapy crawl News")
才正常,不知道為什么會這樣,如果有大神可以解釋原因還請指點。
反正
os.system、subprocess.Popen
都是pythoncmd的實現(xiàn)方法,可以根據(jù)需要選擇使用。
總結(jié)
以上所述是小編給大家介紹的python實現(xiàn)scrapy定時執(zhí)行爬蟲,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
- Python爬蟲框架Scrapy安裝使用步驟
- 零基礎(chǔ)寫python爬蟲之使用Scrapy框架編寫爬蟲
- 使用scrapy實現(xiàn)爬網(wǎng)站例子和實現(xiàn)網(wǎng)絡(luò)爬蟲(蜘蛛)的步驟
- scrapy爬蟲完整實例
- 深入剖析Python的爬蟲框架Scrapy的結(jié)構(gòu)與運作流程
- 講解Python的Scrapy爬蟲框架使用代理進行采集的方法
- Python使用Scrapy爬蟲框架全站爬取圖片并保存本地的實現(xiàn)代碼
- Python的Scrapy爬蟲框架簡單學(xué)習筆記
- 實踐Python的爬蟲框架Scrapy來抓取豆瓣電影TOP250
- 使用Python的Scrapy框架編寫web爬蟲的簡單示例
- python爬蟲框架scrapy實戰(zhàn)之爬取京東商城進階篇
- Scrapy爬蟲多線程導(dǎo)致抓取錯亂的問題解決
相關(guān)文章
Python實現(xiàn)輕松合并doc為txt的示例代碼
這篇文章主要為大家詳細介紹了如何利用Python編程語言和wxPython模塊,打開指定文件夾中的DOC文檔,并將它們的內(nèi)容合并成一個便捷的TXT文檔,需要的可以參考下2024-03-03python3.6之xlwt如何設(shè)置單元格對齊方式
這篇文章主要介紹了python3.6之xlwt如何設(shè)置單元格對齊方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06Python利用Flask-Mail實現(xiàn)發(fā)送郵件詳解
Flask?的擴展包?Flask?-?Mail?通過包裝了?Python?內(nèi)置的smtplib包,可以用在?Flask?程序中發(fā)送郵件。本文將利用這特性實現(xiàn)郵件發(fā)送功能,感興趣的可以了解一下2022-08-08