爬取企查查需要考虑到其验证码问题
验证码有两种(滑动验证码和图片验证码)
一、滑动验证码
解决办法:使用selenium技术
1 先获取到需滑动的块状
2 进行滑动、点击按钮
具体代码如下:
def get_track(distance): track = [] current = 0 mid = distance * 3 / 4 t = 0.2 v = 0 while current < distance: if current < mid: a = 2 else: a = -3 v0 = v v = v0 + a * t move = v0 * t + 1 / 2 * a * t * t current += move track.append(round(move)) return track # 滑动验证码识别 def slide_discern(): print("滑块验证码验证中。。。")
#创建无界面模式 chrome_options = Options() chrome_options.add_argument(‘--headless‘) chrome_options.add_argument(‘--disable-gpu‘) driver = webdriver.Chrome(chrome_options=chrome_options)
# 获取到需滑动的按钮 source = driver.find_element_by_xpath(‘//*[@id="nc_1_n1z"]‘) action = ActionChains(driver) # 按住左键不放 action.click_and_hold(source).perform() # 开始滑动 distance = 340
# 模拟以人为速度拖动 track = get_track(distance) for i in track: action.move_by_offset(xoffset=i, yoffset=0).perform() action.reset_actions() # 释放鼠标 action.release().perform()
二 :图片验证码
解决办法:使用第三方平台进行验证(超级鹰)
超级鹰使用方法:
1:登陆网址:http://www.chaojiying.com/ 进行注册
2:注册完成点击菜单栏中开发者文档,下载python代码文件
点击下载
解压文件 把里面的chaojiying.py 复制到你本人项目目录中,共以下步骤使用
3、进入超级鹰的用户中心生成软件ID
点击提交会出现一个软件ID列表
复制软件ID 待会 会使用到
原文:https://www.cnblogs.com/renshaoqi/p/10956950.html