前言:
而今朋友们对“图片验证码怎么测试”大概比较珍视,同学们都需要知道一些“图片验证码怎么测试”的相关文章。那么小编也在网摘上网罗了一些有关“图片验证码怎么测试””的相关内容,希望看官们能喜欢,看官们快快来学习一下吧!之前用selenium进行图片验证码识别时,核心逻辑是首先获取浏览器全屏截图,再对验证码元素进行坐标定位,最后利用定位对浏览器全屏进行截图,想想还是挺复杂的,这次用pyppeteer库进行识别一下。相对selenium识别相对方便很多。
举一个例子,比如识别这张登录验证码,再到平台自动打码,最后点击自动登录获取登录cookies。
接下来,在代码中先初始化对象
async def init(): global page browser = await launch(**KW_ARGS) page = (await browser.pages())[-1] await page.setViewport({'width':WINDOW_WIDTH,'height':WINDOW_HEIGHT})async def openWeb(): url = '; await page.goto(url) await page.waitForSelector('#username',options={'timeout':TIMES_OUT*1000}) await page.evaluate("document.body.style.zoom='0.8'") # await page.waitFor(TIMES_OUT*1000)
获取验证码图片id
对验证码图片进行截屏保存
async def get_screen_shot(): element = await page.waitForSelector('#Verify') await element.screenshot(path='screen.png')
查看验证码图片,发现已经将验证码图片保存本地了。
后面调用第三方打码平台,对图片进行识别就可以了
拿到识别的代码,接下来我们模拟输入账号信息,点击登录就可以了
async def loging(): await page.evaluate("document.body.style.zoom='1'") await page.type('#username', USER, {'delay': 100}) await page.type('#password', PASS, {'delay': 100}) await get_code() await page.waitFor(3 * 1000)
登录成功后,获取cookies,将cookies保存到本地,方便我们请求库进行请求,获取登录后页面信息,后面就可以进行数据的抓取了
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #图片验证码怎么测试