python中定時執行爬蟲文件方法

我們爬取數據的時候,經常會希望定時運行爬蟲,一般在凌晨的時候執行,那樣掛服務器上就會減輕很大的負荷,所以我們就需要定時的任務,本文使用了scrapy框架,然後定時執行爬蟲代碼的方法。

聲明:此方法不一定是最好的方法,但是肯定是能達到效果的方法。

網上有很多的代碼介紹,最多的就是下面的方法:

import time
from scrapy.cmdline import execute
import sys
import os
import datetime

def doSth():
    execute(['scrapy','crawl','lcp'])

# 想幾點更新,定時到幾點
def time_ti(h=20, m=24):
    while True:
        now = datetime.datetime.now()
        # print(now.hour, now.minute)
        if now.hour == h and now.minute == m:
            doSth()
        # 每隔60秒檢測一次
        time.sleep(60)


doSth()

但是上面的方法執行一次就結束了,原因可能是cmdline是scrapy框架自帶的,開啓的是一個主線程,任務完成主線程撤銷,所以就執行一次就結束了,完全達不到我們的要求。

所以下面的方法是最簡單的方法。

import time
import sys
import os
import datetime


def Dingshi():
    while True:
        os.system("scrapy crawl lcp")#lcp是我們爬蟲的代碼名字哦
        time.sleep(60) 

Dingshi()

我們直接就是在Linux服務器上執行一次這個Dingshi()的方法就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章