mfc 添加 excel类给定关键字不在字典中_pyppeteer最为核心类Page的接口方法
Page類是pyppeteer的核心,其價(jià)值就猶如selenium的driver,具體的頁面操作都在Page類上;Page與driver比較最具優(yōu)勢(shì)的是和js的交互,可以修改本地js、css,也可以給頁面添加js函數(shù),甚至添加自定義函數(shù)到瀏覽器的windows屬性中,也有js攔截相關(guān)的設(shè)置,更有終端模擬設(shè)置,這些功能是比driver更為強(qiáng)大的功能,但是也有一些劣勢(shì)如頁面超時(shí)方面比driver弱、選擇器不簡潔等問題。
頁面類:Page 基類:pyee.EventEmitter
此類提供了與單個(gè)chrome選項(xiàng)卡進(jìn)行交互的方法。一個(gè) Browser對(duì)象可能有多個(gè)Page對(duì)象。
- 選擇器
Page類選擇器相關(guān)方法有5個(gè),并且這五個(gè)都有別名,分別是:
J()別名querySelector()
JJ()別名querySelectorAll()
JJeval()別名querySelectorAllEval()
Jeval()別名querySelectorEval()
Jx()別名xpath()
協(xié)程函數(shù) querySelector(selector:str)
獲取匹配的元素的selector
參數(shù):搜索元素的選擇器字符串。
返回[ElementHandle]或者None。
協(xié)程函數(shù) querySelectorAll(selector:str)
獲取匹配的所有元素selector作為列表。
參數(shù):搜索元素的選擇器
返回列表或返回空列表。
協(xié)程函數(shù) querySelectorAllEval(selector:str,pageFunction:str,*args)
對(duì)所有匹配元素執(zhí)行js
參數(shù):
selector(str)-選擇器。
pageFunction(str)-要在瀏覽器上運(yùn)行的JavaScript函數(shù)的字符串,此函數(shù)將匹配元素的數(shù)組作為第一個(gè)參數(shù)。
args(Any)-傳遞給pageFunction的其他參數(shù)。
協(xié)程函數(shù) querySelectorEval(selector:str,pageFunction:str,*args)
對(duì)匹配的元素執(zhí)行js函數(shù)
參數(shù):
selector(str)-定位的選擇器字符串。
pageFunction(str)-要在瀏覽器上計(jì)算的JavaScript函數(shù)的字符串,此函數(shù)采用與選擇器匹配的元素作為第一個(gè)參數(shù)。
args(Any)-傳遞給pageFunction的參數(shù)。
如果沒有元素匹配,則此方法會(huì)引發(fā)錯(cuò)誤selector
協(xié)程函數(shù) addScriptTag(options: Dict[KT, VT] = None,**kwargs)
將腳本標(biāo)記添加到此頁面
其中需要一個(gè)必須參數(shù)url,path或content
url (字符串):要添加的腳本的URL。
path (字符串):要添加的本地JavaScript文件的路徑。
content (字符串):要添加的JavaScript字符串。
type(字符串):腳本類型,使用module以加載一個(gè)JavaScript ES6模塊。
返回ElementHandle對(duì)象
協(xié)程函數(shù) addStyleTag(options: Dict[KT, VT] = None, **kwargs)
將樣式或鏈接標(biāo)記添加到此頁面
需要一個(gè)必須參數(shù)url,path或content
url (字符串):要添加的鏈接標(biāo)記的URL。
path (字符串):要添加的本地CSS文件的路徑。
content (字符串):要添加的CSS字符串。
返回添加標(biāo)簽后的ElementHandle
協(xié)程函數(shù) authenticate(credentials: Dict[str, str])
提供http身份驗(yàn)證的憑據(jù)
credentials為None或dict含有有username和 password的字段字典
協(xié)程函數(shù) bringToFront()
將頁面置于前面(激活選項(xiàng)卡)
browser
獲取該頁面所屬的瀏覽器對(duì)象
協(xié)程函數(shù) click(selector: str, options: dict = None, **kwargs)
單擊匹配selector的元素
將先獲取selector元素,在視圖底部,將滾動(dòng)到視圖中,然后使用mouse單擊元素的中心,如果沒有匹配selector,則該方法會(huì)引發(fā) PageError
可用選項(xiàng)包括:
button(STR):,left,right或middle,默認(rèn)為 left。
clickCount (int):默認(rèn)為1。
delay(int | float):等待時(shí)間mousedown和 mouseup以毫秒為單位默認(rèn)為0。
注意
如果此方法觸發(fā)元素并且存在其他的的點(diǎn)擊事件,則容易產(chǎn)生混亂的判斷,單擊并等待的正確模式如下:
await asyncio.gather(page.waitForNavigation(waitOptions),page.click(selector, clickOptions), )協(xié)程函數(shù) close(options: Dict[KT, VT] = None, **kwargs)
作用是關(guān)閉此頁面。
可用選項(xiàng):
runBeforeUnload(bool):默認(rèn)為False,是否運(yùn)行頁面的處理函數(shù)
注意
如果runBeforeUnload傳遞為True,則beforeunload 可以執(zhí)行彈出對(duì)話框,可以通過頁面的dialog事件手動(dòng)處理 。
協(xié)程函數(shù) content()
獲取頁面的完整HTML源碼
協(xié)程函數(shù) cookies(* urls )
獲取cookie,如果未指定URL,則此方法返回當(dāng)前頁面URL的cookie,如果指定了URL,則僅返回這些URL的cookie。
返回的cookie是包含以下字段的字典列表:
name (STR)
value (STR)
url (STR)
domain (STR)
path (STR)
expires (數(shù)字):Unix時(shí)間,以秒為單位
httpOnly (布爾)
secure (布爾)
session (布爾)
sameSite(str):'Strict'或'Lax'
coverage
返回Coverage
協(xié)程函數(shù) deleteCookie(* cookies )
刪除cookie,cookies 應(yīng)該是包含這些字段的字典:
name(str):必填
url (STR)
domain (STR)
path (STR)
secure (布爾)
協(xié)程函數(shù) emulate(options: dict = None, **kwargs)
模擬給定的設(shè)備信息和用戶代理,此方法是調(diào)用兩個(gè)方法的快捷方式:
setUserAgent()
setViewport()
options 是包含以下字段的字典:
viewport(dict)含下列字段
width (int):頁面寬度(以像素為單位)。
height (int):頁面寬度(以像素為單位)。
deviceScaleFactor(float):指定設(shè)備比例(可以認(rèn)為是dpr),默認(rèn)為1。
isMobile(bool):是否考慮標(biāo)簽。默認(rèn)為。meta viewportFalse
hasTouch(bool):指定viewport是否支持觸摸事件。默認(rèn)為False。
isLandscape(bool):指定視口是否處于橫向模式。默認(rèn)為False。
userAgent (str):用戶代理字符串
協(xié)程函數(shù) emulateMedia(mediaType: str = None)
模擬頁面的css媒體類型。
參數(shù):
mediaType(str) - 更改頁面的CSS媒體類型,允許值'screen','print'和 None,傳入None禁用模擬媒體
協(xié)程函數(shù) evaluate(pageFunction:str,* args,force_expr:bool = False )
在瀏覽器上執(zhí)行js-function或js-expression并獲取結(jié)果。
參數(shù):
pageFunction(str) - 要在瀏覽器上執(zhí)行的js-function / expression的字符串
force_expr(bool) - 如果為True,則計(jì)算pageFunction為表達(dá)式。如果為False(默認(rèn)值),請(qǐng)嘗試自動(dòng)檢測函數(shù)或表達(dá)式。
注意:force_exproption是僅關(guān)鍵字參數(shù)。
協(xié)程函數(shù) evaluateHandle(pageFunction:str,* args )
執(zhí)行此頁面上的功能
evaluateHandle()和evaluate()之間的區(qū)別是 evaluateHandle返回JSHandle對(duì)象(不是值)。
參數(shù):
pageFunction(str) - 要執(zhí)行的JavaScript函數(shù)。
協(xié)程函數(shù) evaluateOnNewDocument(pageFunction:str,* args )
在文檔中添加JavaScript函數(shù)。
將在以下情況發(fā)生時(shí)調(diào)用此函數(shù):
每當(dāng)頁面被導(dǎo)航時(shí)
每當(dāng)子框架被附加或?qū)Ш綍r(shí)。在這種情況下,在新附加的幀的上下文中調(diào)用該函數(shù)。
協(xié)程函數(shù) exposeFunction(name:str,pyppeteerFunction:Callable [[...],Any] )
將python函數(shù)添加到瀏覽器的window對(duì)象中,可以從chrome進(jìn)程調(diào)用已注冊(cè)的函數(shù)。
參數(shù):
name(string) - 窗口對(duì)象上函數(shù)的名稱。
pyppeteerFunction(Callable) - 將在python進(jìn)程上調(diào)用的函數(shù)。此函數(shù)不應(yīng)該是異步函數(shù)。
協(xié)程函數(shù) focus(selector:str )
聚焦匹配的元素,如果沒有元素匹配selector,拋出PageError
frames
獲取此頁面的所有frame
協(xié)程函數(shù) goBack(options: dict = None, **kwargs)
導(dǎo)航到歷史記錄中的上一頁,如果不能回去,返回None。
協(xié)程函數(shù) goForward(options: dict = None, **kwargs)
導(dǎo)航到歷史記錄中的下一頁,可用選項(xiàng)與goto()方法相同,如果不能前進(jìn),返回None。
協(xié)程函數(shù) goto(url:str,options:dict = None,** kwargs )
打開url地址
參數(shù):
url(str) - 將頁面導(dǎo)航到的URL,網(wǎng)址應(yīng)包括類型https://。
可用選項(xiàng)包括:
timeout(int):最大導(dǎo)航時(shí)間(以毫秒為單位),默認(rèn)為30秒,傳遞0給禁用超時(shí)??梢允褂迷搒etDefaultNavigationTimeout()方法更改默認(rèn)值。
waitUntil(str | List [str]):何時(shí)考慮導(dǎo)航成功,默認(rèn)為load。給定事件字符串列表,在所有事件被觸發(fā)后,導(dǎo)航被認(rèn)為是成功的?;顒?dòng)可以是:
load:當(dāng)load事件被觸發(fā)時(shí)。
domcontentloaded:當(dāng)DOMContentLoaded事件被觸發(fā)時(shí)。
networkidle0:當(dāng)網(wǎng)絡(luò)連接數(shù)不超過0時(shí),至少500毫秒。
networkidle2:當(dāng)網(wǎng)絡(luò)連接不超過2個(gè),至少500毫秒。
該P(yáng)age.goto會(huì)引發(fā)錯(cuò)誤:
存在SSL錯(cuò)誤(例如,在自簽名證書的情況下)
目標(biāo)網(wǎng)址無效
在timeout導(dǎo)航期間超過
然后主資源無法加載
注意
goto()要么引發(fā)錯(cuò)誤,要么返回主要資源響應(yīng)。唯一的例外是導(dǎo)航到about:blank或?qū)Ш降骄哂胁煌⒘械南嗤琔RL,這將成功并返回None。
無頭模式不支持導(dǎo)航到PDF文檔。
協(xié)程函數(shù) hover(selector:str )
鼠標(biāo)懸停在匹配元素上,如果沒有元素則拋出PageError。
協(xié)程函數(shù) injectFile(filePath:str )
[已棄用]將文件注入此頁面,不推薦使用此方法,請(qǐng)addScriptTag()改用。
isClosed()
判斷頁面是否關(guān)閉
keyboard
獲取Keyboard對(duì)象
mainFrame
獲取此頁面Frame的主要內(nèi)容
協(xié)程函數(shù) metrics()
獲取頁面屬性,返回包含指標(biāo)作為鍵/值對(duì)的字典:
Timestamp (number):獲取度量標(biāo)準(zhǔn)樣本的時(shí)間戳。
Documents (int):頁面中的文檔數(shù)。
Frames (int):頁面中的幀數(shù)。
JSEventListeners (int):頁面中的事件數(shù)。
Nodes (int):頁面中DOM節(jié)點(diǎn)的數(shù)量。
LayoutCount (int):完整部分頁面布局的總數(shù)。
RecalcStyleCount (int):頁面樣式重新計(jì)算的總數(shù)。
LayoutDuration (int):頁面持續(xù)時(shí)間的組合持續(xù)時(shí)間。
RecalcStyleDuration (int):所有頁面樣式重新計(jì)算的組合持續(xù)時(shí)間。
ScriptDuration (int):JavaScript執(zhí)行的組合持續(xù)時(shí)間。
TaskDuration (int):瀏覽器執(zhí)行的所有任務(wù)的組合持續(xù)時(shí)間。
JSHeapUsedSize (float):使用的JavaScript堆大小。
JSHeapTotalSize (float):JavaScript堆總大小。
mouse
獲取Mouse對(duì)象
協(xié)程函數(shù) pdf(options: dict = None, **kwargs)
生成頁面的pdf
選項(xiàng):
path (str):保存PDF的文件路徑。
scale(float):網(wǎng)頁渲染的比例,默認(rèn)為1。
displayHeaderFooter(bool):顯示頁眉和頁腳。默認(rèn)為False。
headerTemplate(str):打印標(biāo)題的HTML模板。應(yīng)該是有效的HTML標(biāo)記與以下類。
date:格式化的打印日期
title:文件名
url:文件位置
pageNumber:當(dāng)前頁碼
totalPages:文檔中的總頁數(shù)
footerTemplate(str):打印頁腳的HTML模板。應(yīng)該使用相同的模板headerTemplate。
printBackground(bool):打印背景圖形。默認(rèn)為 False。
landscape(bool):紙張方向。默認(rèn)為False。
pageRanges(字符串):要打印的紙張范圍,例如“1-5,8,11-13”。默認(rèn)為空字符串,表示所有頁面。
format(str):紙張格式。如果設(shè)置,優(yōu)先于 width或height。默認(rèn)為Letter。
width (str):紙張寬度,接受標(biāo)有單位的值。
height (str):紙張高度,接受標(biāo)有單位的值。
margin(字典):紙張邊距,默認(rèn)為None。
top (str):上邊距,接受標(biāo)有單位的值。
right (str):右邊距,接受標(biāo)有單位的值。
bottom (str):底部邊距,接受標(biāo)有單位的值。
left (str):左邊距,接受標(biāo)有單位的值。
返回: 返回生成的PDF bytes對(duì)象。
注意
目前僅在無頭模式下支持生成pdf。
pdf()使用printcss media 生成頁面的pdf,要生成帶screen媒體的pdf ,請(qǐng)?jiān)O(shè)置page.emulateMedia('screen')。
默認(rèn)情況下,pdf()生成帶有修改顏色的pdf以進(jìn)行打印。使用該--webkit-print-color-adjust屬性強(qiáng)制渲染精確顏色。
await page.emulateMedia('screen')await page.pdf({'path': 'page.pdf'})的width,height和margin選項(xiàng)接受標(biāo)記單位值,未標(biāo)記的值被視為像素。
幾個(gè)例子:
page.pdf({'width': 100}):打印寬度設(shè)置為100像素。
page.pdf({'width': '100px'}):打印寬度設(shè)置為100像素。
page.pdf({'width': '10cm'}):打印寬度設(shè)置為100厘米。
所有可用的單位是:
px:像素
in:英寸
cm:厘米
mm:毫米
格式選項(xiàng)包括:
Letter:8.5英寸x 11英寸
Legal:8.5英寸x 14英寸
Tabloid:11英寸x 17英寸
Ledger:17英寸x 11英寸
A0:33.1英寸x 46.8英寸
A1:23.4英寸x 33.1英寸
A2:16.5英寸x 23.4英寸
A3:11.7英寸x 16.5英寸
A4:8.27英寸x 11.7英寸
A5:5.83英寸x 8.27英寸
A6:4.13英寸x 5.83英寸
注意
headerTemplate和footerTemplate標(biāo)記有以下限制:
不在模板內(nèi)的腳本標(biāo)記。
頁面樣式在模板中不可見。
協(xié)程函數(shù) plainText()
[已棄用]以純文本格式獲取頁面內(nèi)容。
協(xié)程函數(shù)queryObjects(prototypeHandle:pyppeteer.execution_context.JSHandle )
迭代js堆并查找具有句柄的所有對(duì)象。
參數(shù):
prototypeHandle(JSHandle) - 原型對(duì)象的JSHandle。
協(xié)程函數(shù) reload()
刷新本頁
協(xié)程函數(shù) screenshot(options: dict = None, **kwargs)
屏幕截屏
可以使用以下選項(xiàng):
path(str):保存圖像的文件路徑。屏幕截圖類型將從文件擴(kuò)展名中推斷出來。
type(str):指定屏幕截圖類型,可以是jpeg或 png。默認(rèn)為png。
quality(int):圖像的質(zhì)量,在0-100之間。不適用于png圖像。
fullPage(bool):如果為true,請(qǐng)截取完整的可滾動(dòng)頁面。默認(rèn)為False。
clip(字典):指定頁面剪切區(qū)域的對(duì)象。此選項(xiàng)應(yīng)包含以下字段:
x (int):剪輯區(qū)域左上角的x坐標(biāo)。
y (int):剪輯區(qū)域左上角的y坐標(biāo)。
width (int):剪切區(qū)域的寬度。
height (int):剪切區(qū)域的高度。
omitBackground (bool):隱藏默認(rèn)的白色背景并允許捕獲具有透明度的屏幕截圖。
encoding(str):圖像的編碼可以是 'base64'或'binary'。默認(rèn)為'binary'。
協(xié)程函數(shù) select(selector:str,* values )
選擇選項(xiàng)并返回所選值,如果沒有元素匹配selector,請(qǐng)加注ElementHandleError。
協(xié)程函數(shù) setBypassCSP(enabled:bool )
切換繞過頁面的Content-Security-Policy。
注意
CSP繞過在CSP初始化而不是評(píng)估時(shí)發(fā)生,通常這意味著page.setBypassCSP 應(yīng)該在導(dǎo)航到域之前調(diào)用它。
協(xié)程函數(shù) setCacheEnabled(enabled:bool = True )
為每個(gè)請(qǐng)求啟用/禁用緩存,默認(rèn)情況下,啟用緩存
協(xié)程函數(shù) setContent(html:str )
將內(nèi)容設(shè)置為此頁面
參數(shù):
html(str) - 要分配給頁面的HTML標(biāo)記。
協(xié)程函數(shù) setCookie(* cookies )
設(shè)置cookie
cookies 應(yīng)該是包含這些字段的字典:
name(str):必填
value(str):必填
url (STR)
domain (STR)
path (STR)
expires (數(shù)字):Unix時(shí)間,以秒為單位
httpOnly (布爾)
secure (布爾)
sameSite(str):'Strict'或'Lax'
setDefaultNavigationTimeout(timeout:int )
更改默認(rèn)的最大導(dǎo)航超時(shí),此方法更改以下方法的默認(rèn)超時(shí)30秒:
goto()
goBack()
goForward()
reload()
waitForNavigation()
參數(shù):
timeout(int) - 最大導(dǎo)航時(shí)間(以毫秒為單位),設(shè)置為零0 禁用超時(shí)。
協(xié)程函數(shù) setExtraHTTPHeaders(title:Dict [str,str] )
設(shè)置額外的HTTP標(biāo)頭,將在頁面啟動(dòng)的每個(gè)請(qǐng)求中發(fā)送額外的HTTP標(biāo)頭
注意
page.setExtraHTTPHeaders 不保證傳出請(qǐng)求中的標(biāo)頭順序。
參數(shù):
headers(Dict) - 包含要與每個(gè)請(qǐng)求一起發(fā)送的其他http標(biāo)頭的字典。所有標(biāo)頭值必須是字符串。
本篇文章整理了三分之二還有三分之一明天繼續(xù),來不及了。
重要:因?yàn)橥焦?hào)的文章格式很難保證,所以后面文章選擇性在其他平臺(tái)同步,歡迎移步公眾號(hào)(Python之戰(zhàn)),每日更新原汁原味!
總結(jié)
以上是生活随笔為你收集整理的mfc 添加 excel类给定关键字不在字典中_pyppeteer最为核心类Page的接口方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32H743+Keil-将变量定义
- 下一篇: Keil | 解决Keil与VScode