需要工具:anaconda集成环境/python、pycharm、playwright第三方库。
难点:大型网站具有优秀的反爬机制,传统验证码以及滑块验证码是阻碍目标的最大敌手。
总思路:大型网站都有免登录措施(登录过后,短时间内第二次登录免登录)。
依靠的是登录后服务器与浏览器共同保存的state状态,我们拿到指定网站的state状态后。
即可实现免密登录,但是state状态可能会失效,失效后需要重新获取此state状态。
获取state状态:
与正常免密登录一样,我们需要先手动登录一次,目的是拿到state信息
在这里笔者附上源码,并做了注释
from playwright.sync_api import Playwright, sync_playwright, expect
def run(playwright: Playwright) -> None:
browser = playwright.chromium.launch(headless=False)#创建浏览器,并指定创建的浏览器可见
context = browser.new_context()#由浏览器创建一个上下文,playwright特有
page = context.new_page()#由上下文创建网页
page.goto("指定网站的登录网址")
page.wait_for_timeout(20000)#单位ms,即提供20秒时间用于手动登录
# ---------------------