pyppeteer突破滑动验证

2020-02-15  本文已影响0人  之江狂徒

1、

http://***.piao***wang.com的登录界面

2、

import asyncio

from pyppeteer import launch

from pyquery import PyQuery as pq

width, height = 1366, 768

async def main():

    exepath = 'C:/Users/lee2fat/AppData/Local/Google/Chrome/Application/chrome.exe'

    browser = await launch({'executablePath': exepath, 'headless': False, 'slowMo': 30, 'devtools': True }, args=[f'--window-size={width},{height}','--disable-infobars', '--no-sandbox']) 

    #browser = await launch({'executablePath': exepath})

    #browser = await launch()

    page = await browser.newPage()

    await page.evaluate('''() =>{ Object.defineProperties(navigator,{ webdriver:{ get: () => false } }) }''')   

    await page.setViewport({'width': width, 'height': height})

    await page.goto('http://***.p***x**w****.com/register?******=1')

    await page.setUserAgent(

        'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36')

    #'https://www.q*c**c**.com/****_login?b**k=%**'

    await page.evaluate('''() =>{ Object.defineProperties(navigator,{ webdriver:{ get: () => false } }) }''')

    await asyncio.sleep(300)

asyncio.get_event_loop().run_until_complete(main())

有概率失败,不知道是不是pyppeteer 的问题,下次改 puppeteer 试试

某企** 也是概率失败

版本 72.0.3626.109(正式版本) (64 位) 概率成功

版本 80.0.3987.106(正式版本) (64 位) 概率成功

3、注意点

3.1 'devtools': True 很重要,必须设置,否则80版本会出错

3.2 await page.evaluate('''() =>{ Object.defineProperties(navigator,{ webdriver:{ get: () => false } }) }''')  

两次设置貌似都很重要,做了不太完全的验证

上一篇下一篇

猜你喜欢

热点阅读