您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關怎么在python中利用Scrapy實現一個定時爬蟲功能,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
1、Scrapy介紹
Scrapy是python的爬蟲框架,用于抓取web站點并從頁面中提取結構化的數據。任何人都可以根據需求方便的修改。Scrapy用途廣泛,可以用于數據挖掘、監測和自動化測試。
import time from scrapy import cmdline def doSth(): # 把爬蟲程序放在這個類里 zhilian_spider 是爬蟲的name cmdline.execute('scrapy crawl zhilian_spider'.split()) # 想幾點更新,定時到幾點 def time_ti(h=17, m=54): while True: now = datetime.datetime.now() # print(now.hour, now.minute) if now.hour == h and now.minute == m: doSth() # 每隔60秒檢測一次 time.sleep(60) time_ti()
import time import sys import os import datetime def Dingshi(): while True: os.system("scrapy crawl lcp")#lcp是我們爬蟲的代碼名字哦 time.sleep(60) Dingshi()
知識點擴展:
直接使用Timer類實例代碼
import time import os while True: os.system("scrapy crawl News") time.sleep(86400) #每隔一天運行一次 24*60*60=86400s或者,使用標準庫的sched模塊 import sched #初始化sched模塊的scheduler類 #第一個參數是一個可以返回時間戳的函數,第二個參數可以在定時未到達之前阻塞。 schedule = sched.scheduler ( time.time, time.sleep ) #被周期性調度觸發的函數 def func(): os.system("scrapy crawl News") def perform1(inc): schedule.enter(inc,0,perform1,(inc,)) func() # 需要周期執行的函數 def mymain(): schedule.enter(0,0,perform1,(86400,)) if __name__=="__main__": mymain() schedule.run() # 開始運行,直到計劃時間隊列變成空為止關于cmd的實現方法,本人在單次執行爬蟲程序時使用的是 cmdline.execute("scrapy crawl News".split())但可能因為cmdline是scrapy模塊中自帶的,所以定時執行時只能執行一次就退出了。
上述就是小編為大家分享的怎么在python中利用Scrapy實現一個定時爬蟲功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。