中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

python分布式進程爬蟲怎樣模擬-創新互聯

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

站在用戶的角度思考問題,與客戶深入溝通,找到湯原網站設計與湯原網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:成都網站設計、網站建設、企業官網、英文網站、手機端網站、網站推廣、申請域名、虛擬空間、企業郵箱。業務覆蓋湯原地區。

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

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

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

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

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

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

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

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

6、創建任務到“本地”隊列中,自動上傳任務到網絡隊列中,分配給任務進程進行處理。

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

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

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

文章名稱:python分布式進程爬蟲怎樣模擬-創新互聯
本文網址:http://m.2m8n56k.cn/article26/dppgjg.html

成都網站建設公司_創新互聯,為您提供軟件開發網站導航網站營銷網站設計網站維護用戶體驗

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都做網站
主站蜘蛛池模板: 久久精品国产99久久久 | 一区二区视频在线 | 手机在线免费看毛片 | 99re热精品这里精品 | 日韩毛片免费线上观看 | 爱呦视频在线播放网址 | 最爽的乱淫片免费 | 国产一级做a爰片在线看免费 | 特黄a大片免费视频 | 久久综合九色综合欧洲色 | 国产亚洲精品福利片 | 日韩字幕一中文在线综合 | 亚洲国产精品看片在线观看 | 男女乱配视频免费观看 | 国产成人亚洲精品一区二区在线看 | 成人观看视频又黄又免费 | 国产亚洲精品网站 | 国产黄色片在线观看 | 免费视频网站一级人爱视频 | 成人欧美午夜视频毛片 | 婷婷色九月综合激情丁香 | 久久精品免费观看视频 | 欧美黄www免费 | 激情6月丁香婷婷色综合 | 亚洲视频在线观看免费视频 | 亚洲日韩中文字幕 | 东京一区二区三区高清视频 | 怡红院免费的全部视频国产a | 五月色一区二区亚洲小说 | 免费看a视频 | 成年男女免费视频网站播放 | 欧美特黄高清免费观看的 | 一本三道a无线码一区v | 91av成年影院在线播放 | 国产日韩欧美swag在线观看 | 精品久久久久久久九九九精品 | se就是色94欧美setu | 国产a不卡| 神马三级我不卡 | 久草综合视频 | 国产精品久久久久久一区二区三区 |