python-pyppeteer模塊使用匯總


一.簡單代碼示例

import asyncio
from pyppeteer import launch

async def main():
    browser = await launch()
    page = await browser.newPage()    #打開一個新頁面
    await page.goto('https://www.baidu.com/')  #訪問百度
    await page.screenshot({'path': 'baidu.png'})  #截圖並存儲
    await browser.close()

asyncio.get_event_loop().run_until_complete(main())

二.page對象的方法

await page.方法

1.設置相關

setUserAgent(str)

設置UserAgent

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

設置cookie

cookies 應該是包含這些字段的字典:
name(str):必填
value(str):必填
url (STR)
domain (STR)
path (STR)
expires (數字):Unix時間,以秒為單位
httpOnly (布爾)
secure (布爾)
sameSite(str):'Strict'或'Lax'

2.頁面相關

goto(url)

訪問網頁

reload()

頁面加載完畢

goBack()/goForward()

頁面后退/頁面前進

3.執行js

evaluate(js_str)

對於某個元素執行js

4.截圖

screenshot(dict)

dictkey

path(str):保存圖像的文件路徑。屏幕截圖類型將從文件擴展名中推斷出來。 #基本上寫個這個就夠了

type(str):指定屏幕截圖類型,可以是jpeg或 png。默認為png。

quality(int):圖像的質量,在0-100之間。不適用於png圖像。

fullPage(bool):如果為true,請截取完整的可滾動頁面。默認為False。

clip(字典):指定頁面剪切區域的對象。此選項應包含以下字段:

x (int):剪輯區域左上角的x坐標。

y (int):剪輯區域左上角的y坐標。

width (int):剪切區域的寬度。

height (int):剪切區域的高度。

omitBackground (bool):隱藏默認的白色背景並允許捕獲具有透明度的屏幕截圖。

5.保存pdf

pdf(dict)

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

path (str):保存PDF的文件路徑。
scale(float):網頁渲染的比例,默認為1。
displayHeaderFooter(bool):顯示頁眉和頁腳。默認為False。
headerTemplate(str):打印標題的HTML模板。應該是有效的HTML標記與以下類。
date:格式化的打印日期
title:文件名
url:文件位置
pageNumber:當前頁碼
totalPages:文檔中的總頁數
footerTemplate(str):打印頁腳的HTML模板。應該使用相同的模板headerTemplate。
printBackground(bool):打印背景圖形。默認為 False。
landscape(bool):紙張方向。默認為False。
pageRanges(字符串):要打印的紙張范圍,例如“1-5,8,11-13”。默認為空字符串,表示所有頁面。
format(str):紙張格式。如果設置,優先於 width或height。默認為Letter。
width (str):紙張寬度,接受標有單位的值。
height (str):紙張高度,接受標有單位的值。
margin(字典):紙張邊距,默認為None。
top (str):上邊距,接受標有單位的值。
right (str):右邊距,接受標有單位的值。
bottom (str):底部邊距,接受標有單位的值。
left (str):左邊距,接受標有單位的值。

6.獲取內容

content()

頁面文本

print(await page.evaluate('document.body.textContent', force_expr=True)) 這樣也行

cookies()

頁面cookies

title()

標題

7.獲取元素

返回都是ElementHandle或者None

print(await page.querySelector('div選擇器'))    #獲取第一個
print(await page.querySelectorAll("CSS選擇器"))  #獲取全部

querySelectorEval('css選擇器','js_str','前面js需要的參數')  #獲取第一個並對其執行js
querySelectorAllEval('css選擇器','js_str','前面js需要的參數') #獲取全部並對其執行js

await page.xpath('xpath選取器')

8.等待方式

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

9.獲取ElementHandle里的屬性或者文本

await (await ElementHandle_obj.getProperty('屬性')).jsonValue()
await (await ElementHandle_obj.getProperty('textContent')).jsonValue()  #文本

10.與瀏覽器交互

request_html中render操

可以參考這個應為request_html就是封裝了pyppeteer


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM