欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

python分布式進程爬蟲怎樣模擬

小編給大家分享一下python分布式進程爬蟲怎樣模擬,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

成都創(chuàng)新互聯(lián)秉承實現(xiàn)全網(wǎng)價值營銷的理念,以專業(yè)定制企業(yè)官網(wǎng),網(wǎng)站建設(shè)、網(wǎng)站制作,小程序定制開發(fā),網(wǎng)頁設(shè)計制作,移動網(wǎng)站建設(shè),全網(wǎng)營銷推廣幫助傳統(tǒng)企業(yè)實現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對客戶都以感恩的心態(tài)奉獻自己的專業(yè)和所長。

比如我們需要抓取某個圖片網(wǎng)站的所有圖片,如果用我們的分布式進程的思想,我們會創(chuàng)建一個進程負責(zé)抓取圖片的鏈接地址,然后將這些鏈接地址存放到Queue中,另外的進程負責(zé)從Queue中讀取鏈接進行圖片的下載或者進行其他操作(存在本地)

其實我們的Queue是暴露在網(wǎng)絡(luò)中的,通過分布式就是將其進行了封裝,其實也就是所謂的本地隊列的網(wǎng)絡(luò)化。

接下來,我們來分析一下如何去創(chuàng)建一個分布式的服務(wù)進程,總體可以分為六步:

1、首先我們需要建立一個隊列queue,這個主要用作進程之間的通信??傮w來說就是兩種進程,一種是服務(wù)進程,一種是任務(wù)進程。服務(wù)進程創(chuàng)建任務(wù)隊列task_queue,用作傳遞任務(wù)給任務(wù)進程的通道。服務(wù)進程又創(chuàng)建result_queue,作為任務(wù)進程完成任務(wù)后回復(fù)服務(wù)進程的通道。在分布式進程的環(huán)境下,我們需要通過Queuemanager 獲得的Queue接口來添加任務(wù)。

2、把我們在第一步中隊列在網(wǎng)絡(luò)上進行注冊,暴露給其他的進程或者主機,注冊后獲得網(wǎng)絡(luò)隊列,相當于本地隊列的映像。

3、建立Queuemanager的對象,并且實例化,綁定端口和口令

4、啟動第三步中建立的實例,即啟動管理manager,監(jiān)管信息通道

5、通過管理實例的方法獲取到通過網(wǎng)絡(luò)訪問的queue對象,也就是把網(wǎng)絡(luò)對象實體化成本地的一個隊列。

6、創(chuàng)建任務(wù)到“本地”隊列中,自動上傳任務(wù)到網(wǎng)絡(luò)隊列中,分配給任務(wù)進程進行處理。

我們來寫一下服務(wù)進程的代碼 taskManager.py:

import queue
from multiprocessing.managers import BaseManager
from multiprocessing import freeze_support
# 任務(wù)個數(shù)
task_num = 500
# 定義收發(fā)隊列
task_queue = queue.Queue(task_num)
result_queue = queue.Queue(task_num)
def get_task():
    return task_queue
def get_result():
    return result_queue
# 創(chuàng)建類似的QueueManager
class QueueManager(BaseManager):
    pass
def run():
    # Windows下綁定調(diào)用接口不能使用lambda,所以只能先定義函數(shù)再綁定
    QueueManager.register('get_task_queue'callable = get_task)
    QueueManager.register('get_result_queue'callable=get_result)
    #綁定端口并設(shè)置驗證口令,windows下需要填寫ip地址,Linux中不填默認為本地
    manager = QueueManager(address=('127.0.0.1'8001), authkey='jap'.encode('utf-8'))
    # 啟動
    manager.start()
    try:
        # 通過網(wǎng)絡(luò)獲取任務(wù)隊列和結(jié)果隊列
        task = manager.get_task_queue()
        result = manager.get_result_queue()
        # 添加任務(wù)
        for url in ["JAP君url:"+str(i) for i in range(500)]:
            print("添加任務(wù) %s" %url)
            task.put(url)
        print("正在獲取結(jié)果...")
        for i in range(500):
            print("result is %s" %result.get(timeout=10))
    except:
        print('Manager error')
    finally:
        # 一定要關(guān)閉,否則會報管道未關(guān)閉的錯
        manager.shutdown()
if __name__ == '__main__':
    # windows下多進程可能會出現(xiàn)問題,添加這句話可以解決
    freeze_support()
    run()

看完了這篇文章,相信你對python分布式進程爬蟲怎樣模擬有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

文章題目:python分布式進程爬蟲怎樣模擬
網(wǎng)頁路徑:http://aaarwkj.com/article34/gjcdse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、虛擬主機、網(wǎng)站維護用戶體驗、自適應(yīng)網(wǎng)站商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計
日韩精品在线中文字幕| 精品黄色大片不卡国产| 日韩欧美二区三区精品在线| 亚洲国产精品一区二区电影| 国产亚洲欧美精品在线观看| 国产精品一区在线免费看| 亚洲欧洲精品真人av蜜臀| 午夜精品视频免费91| 亚洲综合偷拍日韩av| 狠狠综爱五月天的婷婷| 国产一区欧美二区日韩三区| 免费观看久久久激情片| 亚洲一区在线观看蜜臀| 久久久国产精品视频网站| 国产三级三级在线观看| 九九蜜桃视频香蕉视频| 天天干夜夜操操操操| 色噜噜男人的天堂av| 欧美夫妻香蕉视频网站| 欧美午夜福利视频网址| 亚洲成色在线综合剧情网站| 偷拍丝袜美腿亚洲超碰| 国产91九色蝌蚪在线观看| 日韩视频在线一区二区三区| 国产黄色一区二区三区| 中文字幕人妻系列东京热| 国产精品自产拍在线网站| 国产精品美女露脸av毛片| 国产精品自拍激情在线观看| 极品女神福利视频久久| 亚洲麻豆精品午夜免费| 日本欧美一区二区精品| 最新国产情侣夫妻激情| 高清中文字幕一区二区三区| 91口爆吞精国产对白| 国产一区av剧情巨作| 青青草老司机在线视频| 午夜丁香婷婷爽少妇av| 亚洲一区二区三区精品日韩| 欧美亚洲另类国产精品| 国产真实精品对白又爽欧美|