真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python3爬蟲中多線程的使用示例

這篇文章主要介紹了python3爬蟲中多線程的使用示例,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

站在用戶的角度思考問題,與客戶深入溝通,找到平定網(wǎng)站設(shè)計與平定網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、申請域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋平定地區(qū)。

本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。

一、Python的多線程爬蟲介紹:

1、Python的多線程并不如java的多線程,其差異在于當python解釋器開始執(zhí)行任務(wù)時,受制于GIL(全局解釋所),Python 的線程被限制到同一時刻只允許一個程執(zhí)行這樣一個執(zhí)行模型。

GIL介紹:

Python代碼的執(zhí)行由Python虛擬機(解釋器)來控制,同時只有一個線程在執(zhí)行。對Python虛擬機的訪問由全局解釋器鎖(GIL)來控制,正是這個鎖能保證同時只有一個線程在運行。

GIL功能:

為了線程間數(shù)據(jù)的一致性和狀態(tài)同步的完整性。

例如:線程2需要線程1執(zhí)行完成的結(jié)果,然而線程2又比線程1執(zhí)行時間短,線程2執(zhí)行完成,線程1仍然還在執(zhí)行,這就是數(shù)據(jù)的同步性。

2、Python 的線程更適用于處理 I/O 和其他需要并發(fā)行的阻塞操作(比如等待 I/O、等待從數(shù)據(jù)庫獲取數(shù)據(jù)等等),而不是需要多處理器行的計算密集型任務(wù)。幸運的是,爬蟲大部分時間在網(wǎng)絡(luò)交互上,所以可以使用多線程來編寫爬蟲。

二、多線程適用場景

在一個程序進程中,有些操作是比較耗時或者需要等待的。比如:等待數(shù)據(jù)庫的查詢結(jié)果的返回等待網(wǎng)頁結(jié)果的響應(yīng)。

使用單線程:

處理器必須要等到這些操作完成之后才能繼續(xù)往下執(zhí)行其他操作,而這個線程在等待的過程中,處理器明顯是可以來執(zhí)行其他操作的。

使用多線程:

處理器就可以在某個線程等待時,去執(zhí)行其他的線程,從而從整體上提高執(zhí)行效率。

三、多線程爬蟲使用方法

t1 = threading.Thread(targe=func,args=(,))
t1.setDaemon(True)
t1.start() #此時線程才會啟動

threading模塊是python中專門提供用來做多線程編程的模塊。threading模塊中最常用的類是Thread。

    import threading
    import time
    
    def coding():
        for x in range(3):
            print('%s正在寫代碼' % x)
            time.sleep(1)
    
    def drawing():
        for x in range(3):
            print('%s正在畫圖' % x)
            time.sleep(1)
    
    
    def single_thread():
        coding()
        drawing()
    
    def multi_thread():
        t1 = threading.Thread(target=coding)
        t2 = threading.Thread(target=drawing)
    
        t1.start()
        t2.start()
    
    if __name__ == '__main__':
        multi_thread()

四、設(shè)置爬蟲代理IP

在做爬蟲的過程中,如果你爬取的頻率過快,不符合人的操作模式。有些網(wǎng)站的反爬蟲機制通過監(jiān)測到你的IP異常,訪問頻率過高。就會對你進行封IP處理。目前已有比較多的第三方平臺專門進行代理IP的服務(wù)。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“python3爬蟲中多線程的使用示例”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!


網(wǎng)站名稱:python3爬蟲中多線程的使用示例
轉(zhuǎn)載注明:http://weahome.cn/article/ihppgo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部