反反爬手段
偽裝瀏覽器
1.定義頭部信息中的User-Agent级零,Referer
2.urllib中使用Request(url,headers)構(gòu)造方法構(gòu)造請求對象
2.requests中將頭部信息賦值給get/post()方法的headers參數(shù)
通過驗(yàn)證碼
肉眼打碼
使用cookie繞過用戶名、密碼、驗(yàn)證碼
1.定義Session對象:s = requests.Session()
2.使用Session對象向服務(wù)器發(fā)送請求:response= s.get(url)
知識點(diǎn):Session是客戶端向服務(wù)器一次請求的對話页慷,在服務(wù)器端會對客戶端進(jìn)行身份登記(s_id)肖爵,同時服務(wù)端會向客戶端發(fā)送cookie(客戶端的身份信息),客戶端第二次向服務(wù)端發(fā)送請求時可通過cookie繞過用戶名美旧、密碼及驗(yàn)證的認(rèn)證鼎文。
將驗(yàn)證碼圖片保存渔肩,通過人為識別
自動打碼
使用pytesseract第三方庫
準(zhǔn)備:
1.下載并安裝 tesseract
https://digi.bib.uni-mannheim.de/tesseract/
2.安裝第三方庫:Pillow,pytesseract
3.找到pytesseract庫文件夾中的pytesseract.py
修改:tesseract_cmd = r"tesseract安裝路徑\tesseract"
步驟
1.導(dǎo)入模塊:
import pytesseract
from PIL import Image
2.使用Image中的open方法打開外部存儲的驗(yàn)證碼圖片
img = Image.open("驗(yàn)證碼圖片路徑")
3.使用pytesseract中的image_to_string()方法對圖片進(jìn)行識別
res = pytesseract.image_to_string(img)
ip代理
代理ip:計(jì)算機(jī)訪問互聯(lián)網(wǎng)需要有唯一的ip,通過ip向服務(wù)器發(fā)送請求拇惋,服務(wù)器通過ip可以識別訪問者的信息周偎,可以通過更換ip(設(shè)置代理ip)來改變訪問者信息。
獲取代理ip
西刺代理撑帖、快代理.....
驗(yàn)證ip:花刺代理軟件
使用步驟
1.定義ip代理池
proxy={“http/https”: “ip:port”,......}
2.在requests中g(shù)et/post()方法的proxies參數(shù)蓉坎,設(shè)置其參數(shù)值為ip代理池proxy
response = requests.get(url,headers,params,data,cookies,proxies=proxy)
js混淆和渲染