python中用Scrapy實(shí)現(xiàn)定時(shí)爬蟲的實(shí)例講解
一般網(wǎng)站發(fā)布信息會(huì)在具體實(shí)現(xiàn)范圍內(nèi)發(fā)布,我們?cè)谶M(jìn)行網(wǎng)絡(luò)爬蟲的過程中,可以通過設(shè)置定時(shí)爬蟲,定時(shí)的爬取網(wǎng)站的內(nèi)容。使用python爬蟲框架Scrapy框架可以實(shí)現(xiàn)定時(shí)爬蟲,而且可以根據(jù)我們的時(shí)間需求,方便的修改定時(shí)的時(shí)間。
1、Scrapy介紹
Scrapy是python的爬蟲框架,用于抓取web站點(diǎn)并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)。任何人都可以根據(jù)需求方便的修改。Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘、監(jiān)測(cè)和自動(dòng)化測(cè)試。
2、使用Scrapy框架定時(shí)爬取
import time
from scrapy import cmdline
def doSth():
# 把爬蟲程序放在這個(gè)類里 zhilian_spider 是爬蟲的name
cmdline.execute('scrapy crawl zhilian_spider'.split())
# 想幾點(diǎn)更新,定時(shí)到幾點(diǎn)
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秒檢測(cè)一次
time.sleep(60)
time_ti()
3、更簡單的寫法
import time
import sys
import os
import datetime
def Dingshi():
while True:
os.system("scrapy crawl lcp")#lcp是我們爬蟲的代碼名字哦
time.sleep(60)
Dingshi()
知識(shí)點(diǎn)擴(kuò)展:
直接使用Timer類實(shí)例代碼
import time
import os
while True:
os.system("scrapy crawl News")
time.sleep(86400) #每隔一天運(yùn)行一次 24*60*60=86400s或者,使用標(biāo)準(zhǔn)庫的sched模塊
import sched
#初始化sched模塊的scheduler類
#第一個(gè)參數(shù)是一個(gè)可以返回時(shí)間戳的函數(shù),第二個(gè)參數(shù)可以在定時(shí)未到達(dá)之前阻塞。
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() # 開始運(yùn)行,直到計(jì)劃時(shí)間隊(duì)列變成空為止關(guān)于cmd的實(shí)現(xiàn)方法,本人在單次執(zhí)行爬蟲程序時(shí)使用的是
cmdline.execute("scrapy crawl News".split())但可能因?yàn)閏mdline是scrapy模塊中自帶的,所以定時(shí)執(zhí)行時(shí)只能執(zhí)行一次就退出了。
到此這篇關(guān)于python中用Scrapy實(shí)現(xiàn)定時(shí)爬蟲的實(shí)例講解的文章就介紹到這了,更多相關(guān)python中使用Scrapy實(shí)現(xiàn)定時(shí)爬蟲內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 自動(dòng)在Windows中運(yùn)行Python腳本并定時(shí)觸發(fā)功能實(shí)現(xiàn)
- 實(shí)現(xiàn)Windows下設(shè)置定時(shí)任務(wù)來運(yùn)行python腳本
- 如何給windows設(shè)置定時(shí)任務(wù)并運(yùn)行python腳本
- python 實(shí)現(xiàn)定時(shí)任務(wù)的四種方式
- python獲取指定時(shí)間段內(nèi)特定規(guī)律的日期列表
- Python爬蟲定時(shí)計(jì)劃任務(wù)的幾種常見方法(推薦)
- python實(shí)現(xiàn)定時(shí)發(fā)送郵件到指定郵箱
- python實(shí)現(xiàn)定時(shí)發(fā)送郵件
- python腳本定時(shí)發(fā)送郵件
- Python實(shí)現(xiàn)FTP文件定時(shí)自動(dòng)下載的步驟
- python爬蟲調(diào)度器用法及實(shí)例代碼
- scrapy處理python爬蟲調(diào)度詳解
- 簡單的Python調(diào)度器Schedule詳解
- python編寫網(wǎng)頁爬蟲腳本并實(shí)現(xiàn)APScheduler調(diào)度
- Python使用定時(shí)調(diào)度任務(wù)的方式
相關(guān)文章
python 3利用BeautifulSoup抓取div標(biāo)簽的方法示例
這篇文章主要介紹了python 3利用BeautifulSoup抓取div標(biāo)簽的方法,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-05-05
Python文件夾與文件的操作實(shí)現(xiàn)代碼
最近在寫的程序頻繁地與文件操作打交道,這塊比較弱,還好在百度上找到一篇不錯(cuò)的文章,這是原文傳送門,我對(duì)原文稍做了些改動(dòng)2014-07-07

