Pyppeteer常用方法

1. 启动浏览器

# -*- coding: UTF-8 -*-
import asyncio
import tkinter
from pyppeteer import launch
from config.config import start_parm
from pyppeteer_stealth import stealth  # pyppeteer 隐藏特征库

async def main(tel):
    # 浏览器 启动参数
    browser = await launch(**start_parm)
    page = await browser.newPage()
    await stealth(page)
    # 查看当前桌面大小
    tk = tkinter.Tk()
    width = tk.winfo_screenwidth()
    height = tk.winfo_screenheight()
    tk.quit()
    # 设置网页视图大小
    await page.setViewport(viewport={'width': width, 'height': height})

1.1 start_parm 浏览器环境配置项

# pyppteer 浏览器环境配置
start_parm = {
    # 启动chrome的路径
    # "executablePath": r"C:\Program Files\Google\Chrome\Application\chrome.exe",
    # 关闭无头浏览器
    "headless": False,
    "userDaraDir":r"D:\data",
    "autoClose": True,
    "args": [
        '--disable-infobars',  # 关闭自动化提示框
        # '--no-sandbox',  # 关闭沙盒模式
        '--start-maximized',  # 窗口最大化模式
    ],
}

2. 请求网页

await page.goto('url')

3. 获取元素的文本内容

    # 可以判断元素是否存在,不存在返回的是None 
    element = await page.querySelector('selector')
    print(element)
    content = await (await element.getProperty('textContent')).jsonValue()
    print(content)
    

4. 截图

el = await page.J(
        '.shumei_captcha_img_wrapper')

box = await el.boundingBox()
print('bg', box)
await page.screenshot({'path': 'yilong.png', 'clip': box})  # 元素级截图
await page.waitFor(2000)

5. move移动

在这里插入图片描述

async def get_images(page, _selector=None, pngName=None):
    # 等待元素加载
    await page.waitFor(_selector)
    # 获取元素存在的位置
    el = await page.J(_selector)
    box = await el.boundingBox()
    # 截图
    await page.screenshot({'path': pngName, 'clip': box})
    await page.waitFor(2000)
    # 识别返回结果,缺口距离或者图形验证码
    distance = await verify_code(pngName)
    return distance 

6. 填写限制速度

await page.type('queryselector', '文本', {'delay': 30})

7.xpath使用

# 点击
verify = await page.xpath('//*[@aria-label="xxx"]')
await verify[0].click()
# 文本写入
await verify[0].type('text')

8. 当前页面的url

# 不需要await, url()错误
_url = page.url

9. 清除文本框内容

await page.evaluate('document.querySelector("#verifyCode").value=""')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值