• pyppeteer模块常用方法


     

    目录

    await page.方法

    设置相关

    setUserAgent(str)

    setCookie(cookie1, cookie2.......)

    页面相关

    goto(url)

    reload()

    goBack()/goForward()

    执行js

    evaluate(js_str)

    截图

    screenshot(dict)

    保存pdf

    pdf(dict)

    获取内容

    content()

    cookies()

    title()

    获取元素

    等待方式

    获取ElementHandle里的属性或者文本

    官方文档


    await page.方法

    设置相关

    setUserAgent(str)

    设置UserAgent

    setCookie(cookie1, cookie2.......)

    设置cookie

    1. cookies 应该是包含这些字段的字典:
    2. name(str):必填
    3. value(str):必填
    4. url (STR)
    5. domain (STR)
    6. path (STR)
    7. expires (数字):Unix时间,以秒为单位
    8. httpOnly (布尔)
    9. secure (布尔)
    10. sameSite(str):'Strict'或'Lax'

    页面相关

    goto(url)

    访问网页

    reload()

    页面加载完毕

    goBack()/goForward()

    页面后退/页面前进

    执行js

    evaluate(js_str)

    对于某个元素执行js

    截图

    screenshot(dict)

    dictkey

    1. path(str):保存图像的文件路径。屏幕截图类型将从文件扩展名中推断出来。 #基本上写个这个就够了
    2. type(str):指定屏幕截图类型,可以是jpeg或 png。默认为png。
    3. quality(int):图像的质量,在0-100之间。不适用于png图像。
    4. fullPage(bool):如果为true,请截取完整的可滚动页面。默认为False。
    5. clip(字典):指定页面剪切区域的对象。此选项应包含以下字段:
    6. x (int):剪辑区域左上角的x坐标。
    7. y (int):剪辑区域左上角的y坐标。
    8. width (int):剪切区域的宽度。
    9. height (int):剪切区域的高度。
    10. omitBackground (bool):隐藏默认的白色背景并允许捕获具有透明度的屏幕截图。

    保存pdf

    pdf(dict)

    返回: 返回生成的PDF bytes对象。

    1. path (str):保存PDF的文件路径。
    2. scale(float):网页渲染的比例,默认为1。
    3. displayHeaderFooter(bool):显示页眉和页脚。默认为False。
    4. headerTemplate(str):打印标题的HTML模板。应该是有效的HTML标记与以下类。
    5. date:格式化的打印日期
    6. title:文件名
    7. url:文件位置
    8. pageNumber:当前页码
    9. totalPages:文档中的总页数
    10. footerTemplate(str):打印页脚的HTML模板。应该使用相同的模板headerTemplate。
    11. printBackground(bool):打印背景图形。默认为 False。
    12. landscape(bool):纸张方向。默认为False。
    13. pageRanges(字符串):要打印的纸张范围,例如“1-5,8,11-13”。默认为空字符串,表示所有页面。
    14. format(str):纸张格式。如果设置,优先于 width或height。默认为Letter。
    15. width (str):纸张宽度,接受标有单位的值。
    16. height (str):纸张高度,接受标有单位的值。
    17. margin(字典):纸张边距,默认为None。
    18. top (str):上边距,接受标有单位的值。
    19. right (str):右边距,接受标有单位的值。
    20. bottom (str):底部边距,接受标有单位的值。
    21. left (str):左边距,接受标有单位的值。

    获取内容

    content()

    页面文本

    print(await page.evaluate('document.body.textContent', force_expr=True)) 这样也行
    
    cookies()

    页面cookies

    title()

    标题

    获取元素

    返回都是ElementHandle或者None

    1. print(await page.querySelector('div选择器')) #获取第一个
    2. print(await page.querySelectorAll("CSS选择器")) #获取全部
    3. querySelectorEval('css选择器','js_str','前面js需要的参数') #获取第一个并对其执行js
    4. querySelectorAllEval('css选择器','js_str','前面js需要的参数') #获取全部并对其执行js
    5. await page.xpath('xpath选取器')

    等待方式

    1. # await page.waitForXPath('h3', timeout=300)
    2. # await page.waitForNavigation(waitUntil="networkidle0")
    3. # await page.waitForFunction('document.getElementByTag("h3")')
    4. # await page.waitForSelector('.t')
    5. # await page.waitFor('document.querySelector("#t")')
    6. # await page.waitForNavigation(waitUntil='networkidle0')
    7. # await page.waitForFunction('document.querySelector("").inner‌​Text.length == 7')

    获取ElementHandle里的属性或者文本

    1. await (await ElementHandle_obj.getProperty('属性')).jsonValue()
    2. await (await ElementHandle_obj.getProperty('textContent')).jsonValue() #文本

    官方文档

    https://pyppeteer.github.io/pyppeteer/reference.html#jshandle-class

  • 相关阅读:
    MySQL - 全表分组后,获取组内排序首条数据信息
    R语言探索与分析17-股票题目
    FFmpeg工作流程及视频文件分析
    还不会用 Noi-Linux 2.0?装机及多种使用方式整合
    第一个SpringBoot项目的创建
    【中介者模式(Mediator)】使用Java实现中介者模式
    开发与运营:“开发”和“运营”角色有何不同和重叠?
    班级网站的设计与实现
    程序员是不是人均黑客?
    数据仓库与数据挖掘的第二章课后习题
  • 原文地址:https://blog.csdn.net/u012206617/article/details/132716276