Playwright:自动化浏览器(爬虫)工具

最近在使用playwright开发自动续期(签到)软件,这里是笔记

安装

首先安装python。

# 安装playwright库
pip install playwright

# 安装浏览器驱动文件(安装过程稍微有点慢)
python -m playwright install

由于各版本略有不同,如果以上命令不能很好地完成,可以尝试

playwright install
playwright install-deps
sudo  playwright install-deps

playwright录制

playWright最强大的功能就是录制脚本了。使用以下命令

python -m playwright codegen

开始录制。此时会打开一个浏览器页面,一个代码预览与控制界面。等待录制完成

后台运行和前台运行

使用

browser = playwright.chromium.launch(headless=True)

中的TrueFlase控制后台运行和前台运行,推荐在调试时使用前台运行。

实现下拉页面

一种实现方式是使用PageDown

page.keyboard.press("PageDown")

实现聚焦

部分网站的图片使用了懒加载技术,即只有在聚焦于当前图片(窗口直接观看当前图片)时才会进行加载,如果不聚焦在这个图片上,直接获取元素,进行分析无法得到图片链接。

可以使用scroll语句进行跳转,需要先使用选择器选择元素,例如我这里的div元素。然后进行跳转。跳转之后,为了完成懒加载的过程,我使用了一个死循环语句,直到加载完成再跳出循环,在加载过程中,每一秒钟获取一次加载信息,代码如下:

for div in divs:
    # div.focus() 之前尝试使用focus语句,但是没有成功
    # 首先使用此语句进行跳转
    div.scroll_into_view_if_needed()、
    # 不断尝试获取链接。直到获取成功,这里使用了一个beautifulsoup进行处理
    while True:
        time.sleep(1)
        try:
            inner = div.inner_html()
            soup = BeautifulSoup(inner,'lxml')
            imgurl = soup.img.attrs['src']
            break
        except:
            pass

储存登录信息

一般而言我们储存登录信息是使用cookie,不过对于playwright有一个更加直接的、储存浏览器全部信息的方案:

可以看到, –save-storage与–load-storage是个非常实用的命令。 例如用下面命令访问网站并登陆,关闭浏览器时自动把cookie等浏览器信息存入hik文件中:

python -m playwright cr https://XXX.top –save-storage cway 使用时用下述命令直接调用,打开页面即为登陆状态:

python -m playwright cr https://XXX.top –load-storage cway

中文文档

python

研究验证码

替代

参考: