企查猫网站也是一个集成的工商信息的网站,相对企查查,天眼查这些网站,这个网站相对比较好爬一些。
但是很多信息是需要登录的。这也就要求我们必须要能够有一些帐号来做支撑。这里根据公司的需求做了一个企查猫的注册脚本。
1.首先分析注册接口
通过抓包发现注册接口是一个post请求,并且没有什么加密的东西,所以就不需要用selenium来做了。
2.通过第三方获得短信验证码
这里有很多第三方的平台,平台中也都有相应的python代码示例比如http://www.51ym.me/等等
3.获取图片验证码
这里也是接入第三方打码平台,平台也有相应的python示例代码这里我也将其封装为Chaojiying_Client方法引入调用。
这里需要注意的是,获取验证码图片的同时需要获取cookies的值,不然下一步post请求不携带会失败。
def GetImgCode(img_url):
res_img = requests.get(img_url, headers=headers)
ckjar = res_img.cookies
ck_dict = requests.utils.dict_from_cookiejar(ckjar)
with open('1.jpg', 'wb') as f:
f.write(res_img.content)
chaojiying = Chaojiying_Client(number,pwd) # 用户中心>>软件ID 生成一个替换 96001
im = open('1.jpg', 'rb').read() # 本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
code_data = chaojiying.PostPic(im, 1902)
err_str = code_data['err_str']
if err_str == 'OK':
img_code = code_data['pic_str']
return img_code,ck_dict
4.最后一步将获取的值作为参数进行post请求就好了
messges = GetImgCode(img_url)
code = messges[0]
ck_dict = messges[1]
# 第三步触发发送短信验证码
post_data = {
'phone': number,
'code': password,
'smstype': 0,
'mcfCode': code
}
res = requests.post(GetPhoneSMSCode, headers=headers, cookies=ck_dict, data=post_data)
print(res.status_code)
print(res.content.decode())