成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談爬蟲及繞過網(wǎng)站反爬取機(jī)制

安全 應(yīng)用安全
爬蟲用來自動(dòng)獲取源數(shù)據(jù),至于更多的數(shù)據(jù)處理等等是后續(xù)的工作,這篇文章主要想談?wù)勁老x獲取數(shù)據(jù)的這一部分。

爬蟲是什么呢,簡(jiǎn)單而片面的說,爬蟲就是由計(jì)算機(jī)自動(dòng)與服務(wù)器交互獲取數(shù)據(jù)的工具。爬蟲的最基本就是get一個(gè)網(wǎng)頁的源代碼數(shù)據(jù),如果更深入一些,就會(huì)出現(xiàn)和網(wǎng)頁進(jìn)行POST交互,獲取服務(wù)器接收POST請(qǐng)求后返回的數(shù)據(jù)。一句話,爬蟲用來自動(dòng)獲取源數(shù)據(jù),至于更多的數(shù)據(jù)處理等等是后續(xù)的工作,這篇文章主要想談?wù)勁老x獲取數(shù)據(jù)的這一部分。爬蟲請(qǐng)注意網(wǎng)站的Robot.txt文件,不要讓爬蟲違法,也不要讓爬蟲對(duì)網(wǎng)站造成傷害。

[[213360]]

反爬及反反爬概念的不恰當(dāng)舉例

基于很多原因(如服務(wù)器資源,保護(hù)數(shù)據(jù)等),很多網(wǎng)站是限制了爬蟲效果的。

考慮一下,由人來充當(dāng)爬蟲的角色,我們?cè)趺传@取網(wǎng)頁源代碼?最常用的當(dāng)然是右鍵源代碼。

網(wǎng)站屏蔽了右鍵,怎么辦?

網(wǎng)站屏蔽了右鍵,怎么辦?

拿出我們做爬蟲中最有用的東西 F12(歡迎討論)

同時(shí)按下F12就可以打開了(滑稽)

2.png

源代碼出來了!!

在把人當(dāng)作爬蟲的情況下,屏蔽右鍵就是反爬取策略,F(xiàn)12就是反反爬取的方式。

講講正式的反爬取策略

事實(shí)上,在寫爬蟲的過程中一定出現(xiàn)過沒有返回?cái)?shù)據(jù)的情況,這種時(shí)候也許是服務(wù)器限制了UA頭(user-agent),這就是一種很基本的反爬取,只要發(fā)送請(qǐng)求的時(shí)候加上UA頭就可以了…是不是很簡(jiǎn)單?

其實(shí)一股腦把需要不需要的Request Headers都加上也是一個(gè)簡(jiǎn)單粗暴的辦法……

有沒有發(fā)現(xiàn)網(wǎng)站的驗(yàn)證碼也是一個(gè)反爬取策略呢?為了讓網(wǎng)站的用戶能是真人,驗(yàn)證碼真是做了很大的貢獻(xiàn)。隨驗(yàn)證碼而來的,驗(yàn)證碼識(shí)別出現(xiàn)了。

說到這,不知道是先出現(xiàn)了驗(yàn)證碼識(shí)別還是圖片識(shí)別呢?

簡(jiǎn)單的驗(yàn)證碼現(xiàn)在識(shí)別起來是非常簡(jiǎn)單的,網(wǎng)上有太多教程,包括稍微進(jìn)階一下的去噪,二值,分割,重組等概念。可是現(xiàn)在網(wǎng)站人機(jī)識(shí)別已經(jīng)越發(fā)的恐怖了起來,比如這種:

6.jpg

簡(jiǎn)單講述一下去噪二值的概念

將一個(gè)驗(yàn)證碼3.png變成5.png就是二值,也就是將圖片本身變成只有兩個(gè)色調(diào),例子很簡(jiǎn)單,通過python PIL庫里的

  1. Image.convert("1") 

就能實(shí)現(xiàn),但如果圖片變得更為復(fù)雜,還是要多思考一下,比如如果直接用簡(jiǎn)單方式的話 就會(huì)變成思考一些這種驗(yàn)證碼應(yīng)該怎么識(shí)別?這種時(shí)候 去噪 就派上了用處,根據(jù)驗(yàn)證碼本身的特征,可以計(jì)算驗(yàn)證碼的底色和字體之外的RGB值等,將這些值變成一個(gè)顏色,將字體留出。示例代碼如下,換色即可

  1. for x in range(0,image.size[0]): 
  2.  
  3.         for y in range(0,image.size[1]): 
  4.  
  5.             # print arr2[x][y] 
  6.  
  7.             if arr[x][y].tolist()==底色: 
  8.  
  9.                 arr[x][y]=0 
  10.  
  11.             elif arr[x][y].tolist()[0] in range(200,256) and arr[x][y].tolist()[1] in range(200,256) and arr[x][y].tolist()[2] in range(200,256): 
  12.  
  13.                 arr[x][y]=0 
  14.  
  15.             elif arr[x][y].tolist()==[0,0,0]: 
  16.  
  17.                 arr[x][y]=0 
  18.  
  19.             else: 
  20.  
  21.                 arr[x][y]=255 

arr是由numpy得到的,根據(jù)圖片RGB值得出的矩陣,讀者可以自己嘗試完善代碼,親自實(shí)驗(yàn)一下。

細(xì)致的處理之后圖片可以變成識(shí)別率還是很高的。

 

在驗(yàn)證碼的發(fā)展中,還算清晰的數(shù)字字母,簡(jiǎn)單的加減乘除,網(wǎng)上有輪子可以用,有些難的數(shù)字字母漢字,也可以自己造輪子(比如上面),但更多的東西,已經(jīng)足夠?qū)懸粋€(gè)人工智能了……(有一種工作就是識(shí)別驗(yàn)證碼…)

再加一個(gè)小提示:有的網(wǎng)站PC端有驗(yàn)證碼,而手機(jī)端沒有…

下一個(gè)話題!

反爬取策略中比較常見的還有一種封IP的策略,通常是短時(shí)間內(nèi)過多的訪問就會(huì)被封禁,這個(gè)很簡(jiǎn)單,限制訪問頻率或添加IP代理池就OK了,當(dāng)然,分布式也可以…

IP代理池->左轉(zhuǎn)Google右轉(zhuǎn)baidu,有很多代理網(wǎng)站,雖然免費(fèi)中能用的不多 但畢竟可以。

還有一種也可以算作反爬蟲策略的就是異步數(shù)據(jù),隨著對(duì)爬蟲的逐漸深入(明明是網(wǎng)站的更新?lián)Q代!),異步加載是一定會(huì)遇見的問題,解決方式依然是F12。以不愿透露姓名的網(wǎng)易云音樂網(wǎng)站為例,右鍵打開源代碼后,嘗試搜索一下評(píng)論

8.png

數(shù)據(jù)呢?!這就是JS和Ajax興起之后異步加載的特點(diǎn)。但是打開F12,切換到NetWork選項(xiàng)卡,刷新一下頁面,仔細(xì)尋找,沒有秘密。

7.png

哦,對(duì)了 如果你在聽歌的話,點(diǎn)進(jìn)去還能下載呢…

4.png

僅為對(duì)網(wǎng)站結(jié)構(gòu)的科普,請(qǐng)自覺抵制盜版,保護(hù)版權(quán),保護(hù)原創(chuàng)者利益。

如果說這個(gè)網(wǎng)站限制的你死死的,怎么辦?我們還有最后一計(jì),一個(gè)強(qiáng)無敵的組合:selenium + PhantomJs

這一對(duì)組合非常強(qiáng)力,可以完美模擬瀏覽器行為,具體的用法自行百度,并不推薦這種辦法,很笨重,此處僅作為科普。

總結(jié)

本文主要討論了部分常見的反爬蟲策略(主要是我遇見過的(聳肩))。主要包括 HTTP請(qǐng)求頭,驗(yàn)證碼識(shí)別,IP代理池,異步加載幾個(gè)方面,介紹了一些簡(jiǎn)單方法(太難的不會(huì)!),以Python為主。希望能給初入門的你引上一條路。

責(zé)任編輯:趙寧寧 來源: FreeBuf
相關(guān)推薦

2017-05-15 10:39:48

爬蟲應(yīng)對(duì)機(jī)制

2016-12-07 11:18:58

Python爬蟲網(wǎng)站

2021-06-28 18:57:15

CSS網(wǎng)頁爬蟲

2022-09-20 07:02:20

網(wǎng)絡(luò)爬蟲反爬蟲

2021-06-06 19:53:05

爬蟲處理字體反爬

2016-12-08 16:47:06

2021-03-18 09:18:12

python爬蟲

2012-12-24 13:50:54

2024-10-08 10:44:32

2017-04-27 20:45:48

爬蟲反爬蟲

2017-05-24 15:07:19

Python爬蟲爬取

2024-06-07 08:56:43

HTTPPythonSelenium

2016-11-07 15:23:37

Python

2009-08-19 10:34:16

反爬蟲

2022-11-24 10:24:32

2018-01-02 16:30:27

Python爬蟲微博移動(dòng)端

2022-09-14 23:06:45

2021-01-24 16:40:00

Python爬取網(wǎng)站編程語言

2015-06-16 10:44:42

2022-08-17 13:30:43

爬蟲Python
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 成人免费视频 | 欧美日韩不卡合集视频 | 亚洲网视频 | 欧美激情精品久久久久久变态 | 色欧美综合 | 欧美成人精品一区二区男人看 | 337p日韩 | 91精品久久久久久久久中文字幕 | 亚洲视频区 | 久久成人一区 | 偷拍亚洲色图 | 一区二区成人在线 | 日韩免费毛片视频 | 91av视频在线观看 | 香蕉大人久久国产成人av | 日韩aⅴ在线观看 | 亚洲区中文字幕 | 欧美在线观看网站 | 久久久久亚洲精品 | а天堂中文最新一区二区三区 | 在线视频成人 | 亚洲 欧美 精品 | 一区二区三区在线 | 亚洲永久入口 | 免费看黄色视屏 | 亚洲视频三区 | 国产91丝袜在线熟 | 久久久国产精品入口麻豆 | 国产精品国产精品国产专区不卡 | 国产精品美女久久久久aⅴ国产馆 | 激情网五月天 | 91视频18| 91精品亚洲 | 国产一在线观看 | 一级高清 | 天天插天天操 | 91免费电影 | 久草院线| 亚av在线 | 久久网站黄 | 男人的天堂视频网站 |