作者:豬仔珊珊_114 | 来源:互联网 | 2023-09-10 12:13
目录一:反爬与反反爬介绍:1:反爬的三个方向:2:基于身份识别进行反爬:3:常见基于爬虫行为进行反爬4:常见基于数据加密进行反爬:二:打码平台的使用:1:tesserate的安装:
目录
- 一:反爬与反反爬介绍:
- 1: 反爬的三个方向:
- 2:基于身份识别进行反爬:
- 3:常见基于爬虫行为进行反爬
- 4:常见基于数据加密进行反爬:
- 二:打码平台的使用:
- 1:tesserate的安装:(钛色ruai特)
- 2:图片识别的使用:
- 2.1:图片识别引擎的使用:
- 2.2:使用图鉴打码平台完成验证码的识别:
- 三:chrome浏览器使用方法介绍
- 3.1: 新建隐身窗口
- 3.2: chrome中network的更多功能:
一:反爬与反反爬介绍:
1: 反爬的三个方向:
- 1:基于身份识别进行反爬。
- 2:基于爬虫行为进行反爬。
- 3:基于数据加密进行反爬。
2:基于身份识别进行反爬:
![《爬虫----反爬与反反爬》](https://img.php1.cn/3cd4a/1eebe/cd5/086aec93f5e1e9b2.webp)
![《爬虫----反爬与反反爬》](https://img.php1.cn/3cd4a/1eebe/cd5/d67981797265d9c7.webp)
3:常见基于爬虫行为进行反爬
![《爬虫----反爬与反反爬》](https://img.php1.cn/3cd4a/1eebe/cd5/0d80e8a685a9a87b.png)
![《爬虫----反爬与反反爬》](https://img.php1.cn/3cd4a/1eebe/cd5/4fae50aeee651818.webp)
![《爬虫----反爬与反反爬》](https://img.php1.cn/3cd4a/1eebe/cd5/2fdc212433a29829.png)
4:常见基于数据加密进行反爬:
1:对响应中含有的数据进行特殊化处理:
例如:猫眼电影中的电影评分是采用特殊的样式显示。
反爬思路: 使用自有字体文件
解决思路:切换到手机版/解析字体文件进行翻译。
2:通过css来反爬 :
例如:猫眼去哪儿电脑版
反爬思路:源码数据不为真正数据,需要通过css位移才能产生真正数据
解决思路:计算css的偏移。
3 通过js动态生成数据进行反爬
反爬原理:通过js动态生成
解决思路:解析关键js,获得数据生成流程,模拟生成数据
4 通过数据图片化反爬
58同城短租](https://baise.58.com/duanzu/38018718834984x.shtml)
解决思路:通过使用图片解析引擎从图片中解析数据
5 通过编码格式进行反爬
反爬原理: 不适用默认编码格式,在获取响应之后通常爬虫使用utf-8格式进行解码,此时解码结果将会是乱码或者报错
解决思路:根据源码进行多格式解码,或者真正的解码格式
二:打码平台的使用:
1:tesserate的安装:(钛色ruai特)
特殊:
mac直接安装:
brew install –with-training-tools tesseract
linux直接安装:
sudo apt-get install tesseract-ocr
1:windows下载安装包:
https://github.com/UB-Mannheim/tesseract/wiki
![《爬虫----反爬与反反爬》](https://img.php1.cn/3cd4a/1eebe/cd5/02c379d60086f382.webp)
![《爬虫----反爬与反反爬》](https://img.php1.cn/3cd4a/1eebe/cd5/2fdc212433a29829.png)
![《爬虫----反爬与反反爬》](https://img.php1.cn/3cd4a/189d8/b64/5b34b53b79a39fdd.jpeg)
2:配置环境变量:
![《爬虫----反爬与反反爬》](https://img.php1.cn/3cd4a/1eebe/cd5/45a090220e38e09d.webp)
![《爬虫----反爬与反反爬》](https://img.php1.cn/3cd4a/1eebe/cd5/99b88427bc9ce0dc.webp)
测试运行结果:
![《爬虫----反爬与反反爬》](https://img.php1.cn/3cd4a/1eebe/cd5/617c1173853af4b6.webp)
3:安装pytesseract与pillow图片库:
pip install pillow
pip install pytesseract 从图片中解析数据
![《爬虫----反爬与反反爬》](https://img.php1.cn/3cd4a/1eebe/cd5/ddcc574beb16294e.jpeg)
![《爬虫----反爬与反反爬》](https://img.php1.cn/3cd4a/1eebe/cd5/fb32005f2115b419.webp)
2:图片识别的使用:
2.1:图片识别引擎的使用:
import pytesseract
import time
from PIL import Image
# 1: 利用pillow图片库生成图片验证码:
from day04练习.captcha.captcha import captcha
text, image = captcha.generate_captcha()
print(text)
with open("image.png", "wb") as f:
f.write(image)
time.sleep(2)
# 1: 读取本地的图片文件:
img = Image.open("./image.png")
# 2:pytesseract将图片上的文字信息转换成字符串
text_end = pytesseract.image_to_string(img)
print(text_end)
2.2:使用图鉴打码平台完成验证码的识别:
打码平台的地址:http://www.ttshitu.com/
官方文档:http://www.ttshitu.com/docs/index.html
案例:pillow图片库生成图片,然后使用打码平台解析:
import json
import requests
import base64
from io import BytesIO
from PIL import Image
from sys import version_info
from day04练习.captcha.captcha import captcha
# 生成图片验证码
def get_imgae():
text, image = captcha.generate_captcha()
print("我的图片验证码的真实值是:",text)
with open("image.png", "wb") as f:
f.write(image)
# 打码平台解析工具
def base64_api(uname, pwd, img):
img = img.convert('RGB')
buffered = BytesIO()
img.save(buffered, format="JPEG")
if version_info.major >= 3:
b64 = str(base64.b64encode(buffered.getvalue()), encoding='utf-8')
else:
b64 = str(base64.b64encode(buffered.getvalue()))
data = { "username": uname, "password": pwd, "image": b64}
result = json.loads(requests.post("http://api.ttshitu.com/base64", json=data).text)
if result['success']:
return result["data"]["result"]
else:
return result["message"]
if __name__ == "__main__":
# 调用我的生成图片验证码函数:
get_imgae()
img_path = "./image.png"
img = Image.open(img_path)
# 这里用自己的用户名和密码
result = base64_api(uname='wenbin123', pwd='wenbin321', img=img)
print("真正解析出来的值是:", result)
![《爬虫----反爬与反反爬》](https://img.php1.cn/3cd4a/1eebe/cd5/bcafc120671304eb.webp)
三:chrome浏览器使用方法介绍
3.1: 新建隐身窗口
浏览器中直接打开网站,会自动带上之前网站时保存的COOKIE,但是在爬虫中首次获取页面是没有携带COOKIE的,这种情况如何解决呢?
打开浏览器,不需要携带COOKIE,则需要无痕打开:
![《爬虫----反爬与反反爬》](https://img.php1.cn/3cd4a/1eebe/cd5/a1be7872e8d4934f.webp)
3.2: chrome中network的更多功能:
![《爬虫----反爬与反反爬》](https://img.php1.cn/3cd4a/1eebe/cd5/d05d9dfd09a56332.webp)
下面这里可以搜索,js/css/html中的单词。
![《爬虫----反爬与反反爬》](https://img.php1.cn/3cd4a/1eebe/cd5/72fd2c126203a875.webp)