国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

基于Redis的簡單分布式爬蟲

zqhxuyuan / 2209人閱讀

摘要:建議先大概瀏覽一下項目結(jié)構(gòu)項目介紹新手向,基于構(gòu)建的分布式爬蟲。以爬取考研網(wǎng)的貼子為例,利用進行解析,將符合要求的文章文本存入數(shù)據(jù)庫中。項目地址有任何問題可以與我聯(lián)系微信

Ugly-Distributed-Crawler

建議先大概瀏覽一下項目結(jié)構(gòu)

項目介紹

新手向,基于Redis構(gòu)建的分布式爬蟲。
以爬取考研網(wǎng)的貼子為例,利用 PyQuery, lxml 進行解析,將符合要求的文章文本存入MySQ數(shù)據(jù)庫中。

結(jié)構(gòu)簡介 cooperator

協(xié)作模塊,用于為Master&Worker模塊提供代理IP支持

master

提取滿足條件的文章url,并交給Worker進一步處理

worker

解析文章內(nèi)容,將符合要求的存入數(shù)據(jù)庫

環(huán)境依賴

sqlalchemy => 1.0.13
pyquery => 1.2.17
requests => 2.12.3
redis => 2.10.5
lxml => 3.6.0

需要預(yù)先安裝MySQL-server 和 Redis-server.

MySQL中應(yīng)有名為kybsrc的數(shù)據(jù)庫,且該數(shù)據(jù)庫包含一個名為posts的表,擁有num(INT AUTO_INCREMENT)和post(TEXT)兩個字段。

如何啟動 0. 先配置好各模塊所引用的配置文件 1. 為了更好地運行,cooperator/start.py 應(yīng)提前開始并完成一次工作函數(shù)執(zhí)行

第一次執(zhí)行完后,每五分鐘運行一次工作函數(shù)

2. 啟動 master/start.py

默認只執(zhí)行一次

3. 啟動 worker/start.py

默認循環(huán)監(jiān)聽是否有新的URL待解析

核心點說明 1. 通過Redis的集合類型進行代理IP和URL的傳遞
# Summary Reference
# ---------
# 創(chuàng)建句柄
def make_redis_handler():
    pool = redis.ConnectionPool(host=r_server["ip"], port=r_server["port"], password=r_server["passwd"])
    return redis.Redis(connection_pool=pool)

# 獲得句柄
def make_proxy_handler():
    return make_redis_handler()

# 保存到指定的set下
def check_and_save(self, proxy):
 "pass"
   self.redis_handler.sadd(r_server["s_name"], proxy)
2. 由于在驗證代理IP和使用封裝的get_url()函數(shù)的時候網(wǎng)絡(luò)IO較多,所以使用多線程(效果還是很明顯的)。
#Summary Reference
#---------
def save_proxy_ip(self):
    "pass"
    for proxy in self.proxy_ip:
        Thread(target=self.check_and_save, args=(proxy,)).start()

def get_url(url):
    "pass"
    while True:
    "pass"
        resp = request("get", url, headers=headers, proxies={"http": proxy})
    "pass"
項目地址 https://github.com/A101428020...

有任何問題可以與我聯(lián)系(微信:smartseer)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/38568.html

相關(guān)文章

  • 從0-1打造最強性能Scrapy爬蟲集群

    摘要:包括爬蟲編寫爬蟲避禁動態(tài)網(wǎng)頁數(shù)據(jù)抓取部署分布式爬蟲系統(tǒng)監(jiān)測共六個內(nèi)容,結(jié)合實際定向抓取騰訊新聞數(shù)據(jù),通過測試檢驗系統(tǒng)性能。 1 項目介紹 本項目的主要內(nèi)容是分布式網(wǎng)絡(luò)新聞抓取系統(tǒng)設(shè)計與實現(xiàn)。主要有以下幾個部分來介紹: (1)深入分析網(wǎng)絡(luò)新聞爬蟲的特點,設(shè)計了分布式網(wǎng)絡(luò)新聞抓取系統(tǒng)爬取策略、抓取字段、動態(tài)網(wǎng)頁抓取方法、分布式結(jié)構(gòu)、系統(tǒng)監(jiān)測和數(shù)據(jù)存儲六個關(guān)鍵功能。 (2)結(jié)合程序代碼分解說...

    vincent_xyb 評論0 收藏0
  • 布式爬蟲原理

    分布式爬蟲原理 什么是分布式爬蟲: 額,這個問題呢,我這樣解釋,例如爬取網(wǎng)站內(nèi)的二級網(wǎng)站,我們就需要獲取網(wǎng)站中的二級、三級...很多個網(wǎng)站,那么我們?nèi)绻米约阂慌_主機爬取明顯效率很低,這個時候我們就需要其他主機的幫助了,這個時候我們就將作為Master,為其他主機Slaver提供url的同時,啟動程序,沒錯,我們的工作就這么多,而Slaver主機的作用就是接收url,解析并獲取想要的數(shù)據(jù)。。...

    LeexMuller 評論0 收藏0
  • scrapy-redis布式爬蟲框架詳解

    摘要:分布式爬蟲框架詳解隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與應(yīng)用的普及,網(wǎng)絡(luò)作為信息的載體,已經(jīng)成為社會大眾參與社會生活的一種重要信息渠道。下載器中間件位于引擎和下載器之間的框架,主要是處理引擎與下載器之間的請求及響應(yīng)。 scrapy-redis分布式爬蟲框架詳解 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與應(yīng)用的普及,網(wǎng)絡(luò)作為信息的載體,已經(jīng)成為社會大眾參與社會生活的一種重要信息渠道。由于互聯(lián)網(wǎng)是開放的,每個人都可以在網(wǎng)絡(luò)上...

    myeveryheart 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<