<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

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

    共 1617字,需瀏覽 4分鐘

     ·

    2022-10-20 01:15

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

    后臺(tái)回復(fù)【大禮包】送你Python自學(xué)大禮包


    反爬蟲的幾重措施

    1.IP限制

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

    2.User-Agent

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

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




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

    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極有可能是爬蟲再訪問,這樣你就可以針對(duì)用戶的User-Agent進(jìn)行限制了。

    3、 驗(yàn)證碼反爬蟲

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






    4.Ajax異步加載

    5.Noscript標(biāo)簽的使用

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

    6.Cookie限制

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

    爬蟲編寫注意事項(xiàng)

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

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

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

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

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

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

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

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

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


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

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

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

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

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

    瀏覽 54
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    分享
    舉報(bào)
    評(píng)論
    圖片
    表情
    推薦
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    分享
    舉報(bào)

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    天天干天天射综合网 | 黄色成年人网站在线播放 | αv天堂αv电影亚洲ωa | 18禁Av成人 | 亚洲成人MV |