网站优化有哪些类型,网站建设与客户价格谈判技巧,策划网站建设方案,环境设计专业必看网站网址链接#xff1a;衣丰 2010-聚衣网(juyi5.cn) - 常熟市聚衣网#xff0c;聚衣网女装#xff0c;江苏省女装批发#xff0c;苏州市女装批发#xff0c;常熟市女装批发#xff0c;网销女装一件代发#xff0c;全国最低价
平时采集数据#xff0c;频率过快…网址链接衣丰 2010-聚衣网(juyi5.cn) - 常熟市聚衣网聚衣网女装江苏省女装批发苏州市女装批发常熟市女装批发网销女装一件代发全国最低价
平时采集数据频率过快出现反爬 IP/账号/验证码/
需要登陆才能看到手机号何微信号 打开开发者工具刷新后点击显示电话可以发现包里面有数据
获取数据的包的链接https://www.juyi5.cn/ajax/supplier/get_contact_info
获取数据包需要的参数 user_id是不同商家的标志
auth_key:是下面获取验证码链接传来的key值
auth_token:是识别验证码链接返回的值 多次刷新会出现验证码 如何自动识别验证码
1.抓包分析过程 -出现验证码链接 get: https://captcha.jybc.com.cn/api/captcha/get?type2sitejuyi5_1712671270045 数据包中 -img:滑块图片 -key:会用到check包中的载荷中 -slider:完整有缺口图片 -识别验证码链接 post:https://captcha.jybc.com.cn/api/captcha/check识别操作 载荷中 -key:从验证码链接返回的参数中获得 -type:2(固定)验证码类型 -value:74(滑动的距离) 第一个data包是滑块第二个data包是验证码图故意滑动错误出现check包 现在目标明确为了通过验证码必须获得key值和value值value值可以获得验证码图片经过第三方库获得。
具体代码
import base64
import requests
import ddddocr #验证码识别# 验证码链接
url https://captcha.jybc.com.cn/api/captcha/get?type2sitejuyi5_1712671270046
headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36,
}
response requests.get(urlurl,headersheaders)
json_data response.json()
img json_data[data][img].split(,)[-1]#滑块图片base64值
slider json_data[data][slider].split(,)[-1]# 有缺口图片base64值
key json_data[data][key] # key值
yzm base64.b64decode(img) # 获取滑块图片二进制数据
yzm_ base64.b64decode(slider) #获取有缺口图片二进制数据
识别缺口位置
det ddddocr.DdddOcr(detFalse,ocrFalse)
res det.slide_match(yzm,yzm_,simple_targetTrue) # 返回的第一个是value值
value res[target][0]验证识别
link https://captcha.jybc.com.cn/api/captcha/check
data {key: key,type: 2,value: value,
}post_data requests.post(urllink,datadata,headersheaders).json()
print(res)
print(post_data) 结果展现 返回一个token值获取数据时可以传进去。
现在获得了所有数据包需要的参数那么进行数据采集吧
完整代码
import base64
import requests
import ddddocr #验证码识别# 验证码链接
url https://captcha.jybc.com.cn/api/captcha/get?type2sitejuyi5_1712671270046
headers {Cookie:UM_distinctid18ec3225db1698-07895aa196f7bf-26001951-144000-18ec3225db2a0b; CNZZDATA12812570081962599005-1712670793-%7C1712670837; login_captcha_word81065f8c25a8c7a1e3dc118575253916; login_captcha_time1712670843715; login_captcha_image%3Cimgid%3D%22captcha%22src%3D%22%2Fimages%2Fcaptcha%2F1712670843715.png%22width%3D%2280%22height%3D%2230%22style%3D%22border%3A0%3B%22%2F%3E; login_captcha_hash759ec17249f7036e06e84123913624fd; user_phashc71f3ad136b089ae6595129d9f1a3d34; daily_login1; user_username18720180853%40juyi5.cn; user_user_id3698246; user_type0; user_login_typepassport; user_login_time2024-04-0921%3A55%3A02; user_login_ip36.248.235.8; user_is_user_login1; user_hashfcef63a4b7469334801fd1e6ba7566cb; k3cndXNlcl9pZD0zNjk4MjQ2JnR5cGU9MCZ1c2VybmFtZT0xODcyMDE4MDg1M0BqdXlpNS5jbiZ0PTE3MTI2NzA5MDImaGFzaD0yODc5MWVhOTQ2M2Q0MjYwMjk1ZDFkZWJiMzFhY2U5Yg%3D%3D; CNZZDATA1281257007967069251-1712670902-%7C1712671271; CNZZDATA12782890411554277160-1712670793-%7C1712671271,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36,
}
response requests.get(urlurl,headersheaders)
json_data response.json()
img json_data[data][img].split(,)[-1]#滑块图片base64值
slider json_data[data][slider].split(,)[-1]# 有缺口图片base64值
key json_data[data][key] # key值
yzm base64.b64decode(img) # 获取滑块图片二进制数据
yzm_ base64.b64decode(slider) #获取有缺口图片二进制数据
识别缺口位置
det ddddocr.DdddOcr(detFalse,ocrFalse)
res det.slide_match(yzm,yzm_,simple_targetTrue) # 返回的第一个是value值
value res[target][0]验证识别
link https://captcha.jybc.com.cn/api/captcha/check
data {key: key,type: 2,value: value,
}post_data requests.post(urllink,datadata,headersheaders).json()print(res)
print(post_data)请求数据链接
data_url https://www.juyi5.cn/ajax/supplier/get_contact_info
data2 {user_id: 3424211,auth_key: key,auth_token: post_data[data][token],
}
res2 requests.post(urldata_url,datadata2,headersheaders).json() #由于是登录才能获取数据因此headers中还要加上cookie
print(res2)
print(res2[data])
结果展现