久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      Python詳細(xì)解析之多線程爬蟲與常見搜索算法

      本篇文章給大家?guī)?lái)了關(guān)于python的相關(guān)知識(shí),其中主要介紹了關(guān)于多線程爬蟲開發(fā)以及常見搜索算法的相關(guān)問(wèn)題,下面一起來(lái)看一下,希望對(duì)大家有幫助。

      Python詳細(xì)解析之多線程爬蟲與常見搜索算法

      推薦學(xué)習(xí):python視頻教程

      多線程爬蟲

      多線程的優(yōu)勢(shì)

      在掌握了requests與正則表達(dá)式以后,就可以開始實(shí)戰(zhàn)爬取一些簡(jiǎn)單的網(wǎng)址了。
      但是,此時(shí)的爬蟲只有一個(gè)進(jìn)程、一個(gè)線程,因此稱為單線程爬蟲。單線程爬蟲每次只訪問(wèn)一個(gè)頁(yè)面,不能充分利用計(jì)算機(jī)的網(wǎng)絡(luò)帶寬。一個(gè)頁(yè)面最多也就幾百KB,所以爬蟲在爬取一個(gè)頁(yè)面的時(shí)候,多出來(lái)的網(wǎng)速和從發(fā)起請(qǐng)求到得到源代碼中間的時(shí)間都被浪費(fèi)了。如果可以讓爬蟲同時(shí)訪問(wèn)10個(gè)頁(yè)面,就相當(dāng)于爬取速度提高了10倍。為了達(dá)到這個(gè)目的,就需要使用多線程技術(shù)了。

      Python這門語(yǔ)言,有一個(gè)全局解釋器鎖(Global Interpreter Lock, GIL)。這導(dǎo)致Python的多線程都是偽多線程,即本質(zhì)上還是一個(gè)線程,但是這個(gè)線程每個(gè)事情只做幾毫秒,幾毫秒以后就保存現(xiàn)場(chǎng),換做其他事情,幾毫秒后再做其他事情,一輪之后回到第一件事上,恢復(fù)現(xiàn)場(chǎng)再做幾毫秒,繼續(xù)換……微觀上的單線程,在宏觀上就像同時(shí)在做幾件事。這種機(jī)制在I/O(Input/Output,輸入/輸出)密集型的操作上影響不大,但是在CPU計(jì)算密集型的操作上面,由于只能使用CPU的一個(gè)核,就會(huì)對(duì)性能產(chǎn)生非常大的影響。所以涉及計(jì)算密集型的程序,就需要使用多進(jìn)程,Python的多進(jìn)程不受GIL的影響。爬蟲屬于I/O密集型的程序,所以使用多線程可以大大提高爬取效率。

      多進(jìn)程庫(kù):multiprocessing

      multiprocessing本身是Python的多進(jìn)程庫(kù),用來(lái)處理與多進(jìn)程相關(guān)的操作。但是由于進(jìn)程與進(jìn)程之間不能直接共享內(nèi)存和堆棧資源,而且啟動(dòng)新的進(jìn)程開銷也比線程大得多,因此使用多線程來(lái)爬取比使用多進(jìn)程有

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)