playwright比selenium更好用的爬虫工具

简介

官方文档:https://playwright.dev/python/

playwright是一款自动化的测试工具,可以驱动浏览器进行各种操作,相对selenium来说,使用起来更加简答,安装也更加方便,版本要求如下:

  • Python 3.8 或更高版本。
  • Windows 10+、Windows Server 2016+ 或 Windows Subsystem for Linux (WSL)。
  • macOS 13 Ventura 或 macOS 14 Sonoma。
  • Debian 11、Debian 12、Ubuntu 20.04 或 Ubuntu 22.04、Ubuntu 24.04,基于 x86-64 和 arm64 架构。

安装

# 安装playwright
pip install playwright
# 安装驱动
playwright install

使用

playwright 支持同步和异步两种方式, 可以覆盖当前主流的浏览器,实现页面内容获取,长截图,指定元素截图,监听等功能,还可以通过命令行的方式自动生成代码。

同步代码

from playwright.sync_api import sync_playwright

with sync_playwright() as p:  # 浏览器的上下文管理器
    browser = p.chromium.launch(headless=True)  
    # 调用Chromium、Firefox 以及 Webkit 浏览器, 使用p.firefox、 p.webkit替换即可
    # headless 表示无头访问,是否可以看到窗口
    page = browser.new_page()  # 打开一个新网页
    page.goto('https://baijiahao.baidu.com/s?id=1772443491053425218&wfr=spider&for=pc')  # 请求的网址
    page.screenshot(path='scroll_top.png', full_page=True)  # 长截图操作

    # 下载页面内容
    page.wait_for_load_state('networkidle')
    content = page.content()
    with open('baijiahao.html', 'w') as f:
        f.write(content)
    f.close()
    browser.close()

异步代码

import asyncio
from playwright.async_api import async_playwright

async def main():
    async with async_playwright() as p:
        for browser_type in [p.chromium, p.firefox, p.webkit]:
            browser = await browser_type.launch()
            page = await browser.new_page()
            await page.goto('https://baijiahao.baidu.com/s?id=1772443491053425218&wfr=spider&for=pc')
            await page.screenshot(path='scroll_top.png', full_page=True)
            await browser.close()

asyncio.run(main())
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值