打造乙個輕量級企業基本資訊採集框架(三)

2021-10-05 01:36:38 字數 2206 閱讀 4629

在上文中我們主要定義了兩個資料庫,乙個是儲存表mysql的儲存設定,還有乙個就是redis初始化設定,包括取資料,計數等功能函式的設定。沒有看過的小夥伴請移步打造乙個輕量級企業基本資訊採集框架(二),本文主要對如何實現排程器,對url進行排程以及設定。

# -*- coding: utf-8 -*-

from config import

*from utils import

*from db_connect import redisdbconn,dbcollect

from loguru import logger

from cutent import

*import sys

from crawl_spider import

*class

(object):

def__init__

(self)

: self.client = redisdbconn(

) self.db = dbcollect(

) self.init_status = init_status

self.cut = cutentername(

)def

entry_data

(self)

:"""

將原有的資料庫內的keywords放進redis有序集合中

:return:

"""keywords_list = self.db.connect_db(

)for keyword in keywords_list:

self.client.initial_set(keyword)

defrun

(self)

:try

: count = self.client.get_count(self.init_status)

logger.info(

"目前還剩餘~~~~"

+str

(count)

+"個keywords未採集哦..."

)for i in

range

(count)

: keyword_list = self.client.get_data(self.init_status)

if keyword_list:

for params in crawlurl(

).get_params(keyword_list)

: self.cut.cutentername(params[

"entname"])

sys.stdout.flush(

) time.sleep(random.randint(2,

5))except exception as e:

logger.debug(

"採集指令碼發生錯誤"

+str

(e.args)

)

將這些**放入crawl_basicinfo.py內,run()函式是這個指令碼的開始,因為redis內已經有資料,我就沒有再新增資料了,自己可以自行設定,得到keyword以後,我們將其傳入到crawlurl這個類的get_params函式,這個函式的作用就是構造請求data,如下:

def

get_params

(self, datalist)

:"""

構造請求引數

:param datalist:

:return:

"""for keyword in datalist:

params =

,"sourcetype"

:"i"

} data = json.dumps(params, ensure_ascii=

false

).encode(

"utf-8"

)for req_param in self.collect_data(data,keyword.decode())

:yield req_param

這樣子乙個簡單的排程器就完成了,其實吧也算不上什麼排程器,就是函式之間的傳參、返回而已。感興趣的小夥伴可以自己嘗試寫一下,我們下篇文章再見。打造乙個輕量級企業基本資訊採集框架(四)

打造乙個輕量級企業基本資訊採集框架(四)

我們話不多說,show your code!def req data url,data,page,keyword,timeout 10,proxies none 用來請求採集 param data 請求引數 param url url param page 頁數 return html count ...

打造乙個輕量級企業基本資訊採集框架(七)

在前面六篇系列的文章中,我們已經初步搭建了乙個企業基本資訊採集框架,但是從可配置性以及視覺化方面還有很多地方需要去完善。這篇文章我們對schedule.py這個檔案做一些整體的修改,使其看上去更加符合我們的平常需求。我在原有的框架上面,又建立了乙個start crawl.py這個檔案來啟動全域性,主...

peewee 乙個輕量級的ORM 四

class database last insert id cursor,model parameters return type 最後乙個插入的記錄的那行的主鍵,不一定非得叫 id rows affected cursor return type 受影響的行數 create table model...