<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python爬蟲開發(fā):反爬蟲措施以及爬蟲編寫注意事項

          共 1617字,需瀏覽 4分鐘

           ·

          2022-10-20 01:15

          ↑ 關(guān)注 + 星標 ,每天學Python新技能

          后臺回復(fù)【大禮包】送你Python自學大禮包


          反爬蟲的幾重措施

          1.IP限制

          如果是個人編寫的爬蟲,IP可能是固定的,那么發(fā)現(xiàn)某個IP請求過于頻繁并且短時間內(nèi)訪問大量的頁面,有爬蟲的嫌疑,作為網(wǎng)站的管理或者運維人員,你可能就得想辦法禁止這個IP地址訪問你的網(wǎng)頁了。那么也就是說這個IP發(fā)出的請求在短時間內(nèi)不能再訪問你的網(wǎng)頁了,也就暫時擋住了爬蟲。

          2.User-Agent

          User-Agent是用戶訪問網(wǎng)站時候的瀏覽器的標識

          下面我列出了常見的幾種正常的系統(tǒng)的User-Agent大家可以參考一下,




          并且在實際發(fā)生的時候,根據(jù)瀏覽器的不同,還有各種其他的User-Agent,我舉幾個例子方便大家理解:

          safari 5.1 – MAC

          User-Agent:Mozilla/5.0 (Macintosh; U; IntelMac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1Safari/534.50

          Firefox 4.0.1 – MAC

          User-Agent: Mozilla/5.0 (Macintosh; IntelMac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1

          Firefox 4.0.1 – Windows

          User-Agent:Mozilla/5.0 (Windows NT 6.1;rv:2.0.1) Gecko/20100101 Firefox/4.0.1

          同樣的也有很多的合法的User-Agent,只要用戶訪問不是正常的User-Agent極有可能是爬蟲再訪問,這樣你就可以針對用戶的User-Agent進行限制了。

          3、 驗證碼反爬蟲

          這個辦法也是相當古老并且相當?shù)挠行Ч绻粋€爬蟲要解釋一個驗證碼中的內(nèi)容,這在以前通過簡單的圖像識別是可以完成的,但是就現(xiàn)在來講,驗證碼的干擾線,噪點都很多,甚至還出現(xiàn)了人類都難以認識的驗證碼(某二三零六)。






          4.Ajax異步加載

          5.Noscript標簽的使用

          <noscript>標簽是在瀏覽器(或者用戶瀏覽標識),沒有啟動腳本支持的情況下觸發(fā)的標簽,在低級爬蟲中,基本都沒有配置js引擎,通常這種方式和Ajax異步加載同時使用。用于保護自己不想讓爬蟲接觸的信息。

          6.Cookie限制

          第一次打開網(wǎng)頁會生成一個隨機cookie,如果再次打開網(wǎng)頁這個cookie不存在,那么再次設(shè)置,第三次打開仍然不存在,這就非常有可能是爬蟲在工作了。很簡單,在三番屢次沒有帶有該帶的cookie,就禁止訪問。

          爬蟲編寫注意事項

          在這一部分,筆者希望就自己的經(jīng)驗給大家編寫爬蟲提供比較可行的建議,也為大家提一個醒:

          1.道德問題,是否遵守robots協(xié)議;

          2.小心不要出現(xiàn)卡死在死循環(huán)中,盡量使用urlparser去解析分離url決定如何處理,如果簡單的想當然的分析url很容易出現(xiàn)死循環(huán)的問題;

          3.單頁面響應(yīng)超時設(shè)置,默認是200秒,建議調(diào)短,在網(wǎng)絡(luò)允許的條件下,找到一個平衡點,避免所有的爬蟲線程都在等待200,結(jié)果出現(xiàn)效率降低;

          4.高效準確的判重模式,如果判重出現(xiàn)問題,就會造成訪問大量已經(jīng)訪問過的頁面浪費時間;

          5.可以采用先下載,后分析的方法,加快爬蟲速度;

          6.在異步編程的時候要注意資源死鎖問題;

          7.定位元素要精準(xpath)盡量避免dirty data。

          希望大家提出自己的意見,本系列大多數(shù)時間都在從微觀的角度講爬蟲各個部件的解決方案。


          1. 如何快速把你的 Python 代碼變?yōu)?API

          2. 爬了下知乎神回復(fù),笑死人了~

          3. 胡淵鳴:import一個“太極”庫,讓Python代碼提速100倍!

          4. 假期居家做Python私活,6天賺5萬!

          5. 這可能是中國最窮的211大學!連研究生獎學金都發(fā)不起了....

          瀏覽 54
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  逼逼国产 | 大鸡巴导航 | 黄色成人在线观看视频 | 婷婷激情丁香花 | 亚洲一区二区电影网站 |