久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放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. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

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

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

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

      推薦學習:python視頻教程

      多線程爬蟲

      多線程的優(yōu)勢

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

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

      多進程庫:multiprocessing

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

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