反反爬手段
伪装浏览器
1.定义头部信息中的User-Agent,Referer
2.urllib中使用Request(url,headers)构造方法构造请求对象
2.requests中将头部信息赋值给get/post()方法的headers参数
通过验证码
肉眼打码
使用cookie绕过用户名、密码、验证码
1.定义Session对象:s = requests.Session()
2.使用Session对象向服务器发送请求:response= s.get(url)
知识点:Session是客户端向服务器一次请求的对话,在服务器端会对客户端进行身份登记(s_id),同时服务端会向客户端发送cookie(客户端的身份信息),客户端第二次向服务端发送请求时可通过cookie绕过用户名、密码及验证的认证。
将验证码图片保存,通过人为识别
自动打码
使用pytesseract第三方库
准备:
1.下载并安装 tesseract
https://digi.bib.uni-mannheim.de/tesseract/
2.安装第三方库:Pillow,pytesseract
3.找到pytesseract库文件夹中的pytesseract.py
修改:tesseract_cmd = r"tesseract安装路径\tesseract"
步骤
1.导入模块:
import pytesseract
from PIL import Image
2.使用Image中的open方法打开外部存储的验证码图片
img = Image.open("验证码图片路径")
3.使用pytesseract中的image_to_string()方法对图片进行识别
res = pytesseract.image_to_string(img)
ip代理
代理ip:计算机访问互联网需要有唯一的ip,通过ip向服务器发送请求,服务器通过ip可以识别访问者的信息,可以通过更换ip(设置代理ip)来改变访问者信息。
获取代理ip
西刺代理、快代理.....
验证ip:花刺代理软件
使用步骤
1.定义ip代理池
proxy={“http/https”: “ip:port”,......}
2.在requests中get/post()方法的proxies参数,设置其参数值为ip代理池proxy
response = requests.get(url,headers,params,data,cookies,proxies=proxy)
js混淆和渲染