python中用Scrapy實現定時爬蟲的實例講解
一般網站發布信息會在具體實現范圍內發布,我們在進行網絡爬蟲的過程中,可以通過設置定時爬蟲,定時的爬取網站的內容。使用python爬蟲框架Scrapy框架可以實現定時爬蟲,而且可以根據我們的時間需求,方便的修改定時的時間。
1、Scrapy介紹Scrapy是python的爬蟲框架,用于抓取web站點并從頁面中提取結構化的數據。任何人都可以根據需求方便的修改。Scrapy用途廣泛,可以用于數據挖掘、監測和自動化測試。
2、使用Scrapy框架定時爬取import timefrom scrapy import cmdlinedef 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()3、更簡單的寫法
import timeimport sysimport osimport datetimedef Dingshi():while True:os.system('scrapy crawl lcp')#lcp是我們爬蟲的代碼名字哦time.sleep(60)Dingshi()
知識點擴展:
直接使用Timer類實例代碼
import timeimport oswhile 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實現定時爬蟲的實例講解的文章就介紹到這了,更多相關python中使用Scrapy實現定時爬蟲內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: