pyppeteer有java版本吗_Pyppeteer中文文档_序言_安装_基本使用及注意事项
Pyppeteer中文文檔_序言_安裝_基本使用及注意事項
Pyppeteer是Puppeteer Javascript(無頭) chrome/chromium 瀏覽器自動化庫的Python非官方端口,Puppeteer是在Node.js中使用的,而Pyppeteer是專用于Python語言的。
本文檔對應(yīng)的是Pyppeteer的v0.0.25版本,從目前情況來看,Pyppeteer已經(jīng)很久沒更新了,但對于要求不是非常高的爬蟲和自動化測試使用起來還是沒問題的。
當前文章中會介紹一下安裝、使用等一些注意事項,在后續(xù)的文章中會逐一介紹各個API類的功能。
Pyppeteer目前支持Python3.5、3.6、3.7,但不建議在3.5的版本中使用,最佳的使用環(huán)境為3.6+。
安裝
在已安裝了Python3.6+的情況下,以windows為例,Win+R -> cmd -> 回車,打開cmd窗口。
輸入:pip install pyppeteer,等待安裝完畢即可。
如果需要最新版(開發(fā)版)的pyppeteer,可以通過pip命令從github地址進行安裝。
輸入:pip install -U git+https://github.com/miyakogi/pyppeteer.git@dev,等待安裝完畢即可。
使用
在第一次使用Pyppeteer時,它會自動下載最新版本的Chromium(~170MB Mac, ~282MB Linux, ~280MB Win),如果你不希望它自動下載,那么在運行任何Pyppeteer腳本之前,手動運行pyppeteer-install命令即可下載(似乎這沒什么用,普遍情況下我們都會采用自動下載的方式)。
示例:打開頁面并截屏
import asyncio
from pyppeteer import launch
async def main():
browser = await launch()
page = await browser.newPage()
await page.goto('http://example.com')
await page.screenshot({'path': 'example.png'})
await browser.close()
asyncio.get_event_loop().run_until_complete(main())
示例:在頁面中執(zhí)行腳本
import asyncio
from pyppeteer import launch
async def main():
browser = await launch()
page = await browser.newPage()
await page.goto('http://example.com')
await page.screenshot({'path': 'example.png'})
dimensions = await page.evaluate('''() => {
return {
width: document.documentElement.clientWidth,
height: document.documentElement.clientHeight,
deviceScaleFactor: window.devicePixelRatio,
}
}''')
print(dimensions)
#>>> {'width': 800, 'height': 600, 'deviceScaleFactor': 1}
await browser.close()
asyncio.get_event_loop().run_until_complete(main())
Pyppeteer擁有幾乎和Puppeteer一樣的API,更多API詳情可以查看后續(xù)文章。
Pyppeteer與Puppeteer之間的差異
Pyppeteer和Puppeteer類似,由于Python和Javascript在語法、特性、主要發(fā)展領(lǐng)域的一些差異,在使用及運行效率上略有區(qū)別,但不影響其結(jié)果。
選項的關(guān)鍵字參數(shù)
Puppeteer使用對象(Python使用字典)組成選項傳遞給方法或函數(shù),Pyppeteer可接受字典類型和關(guān)鍵字參數(shù)類型作為選項。
字典樣式選項(類似于Puppeteer)
browser = await launch({'headless': True})
關(guān)鍵字參數(shù)樣式參數(shù)
browser = await launch(headless=True)
元素選擇器方法名稱($->querySelector)
在Python中,$不能用于方法名稱,所以使用Page.querySelector()、Page.querySelectorAll()、Page.xpath()代替Page.$()、Page.$$()、Page.$x()。Pyppeteer也有這些方法簡寫Page.J()、Page.JJ()、Page.Jx()。
Page.evaluate()和Page.querySelectorEval()的參數(shù)
Puppeteer的evaluate()采用原生的Javacript函數(shù)或Javascript表達式字符串,Pyppeteer采用Javascript字符串。Javascript字符串可以是函數(shù)或者表達式。Pyppeteer會自動嘗試檢查字符串是函數(shù)還是表達式,但有時會失敗。如果表達式字符被視為函數(shù)并應(yīng)發(fā)錯誤,可以添加force_expr=True參數(shù),這將強制Pyppeteer把字符串視為表達式。
示例:獲取頁面內(nèi)容
content = await page.evaluate('document.body.textContent', force_expr=True)
示例:獲取元素的內(nèi)部文本
element = await page.querySelector('h1')
title = await page.evaluate('(element) => element.textContent', element)
API參考
Commands
Environment Variables
Launcher
Browser Class
BrowserContext Class
Page Class
Worker Class
Keyboard Class
Mouse Class
Tracing Class
Dialog Class
ConsoleMessage Class
Frame Class
ExecutionContext Class
JSHandle Class
ElementHandle Class
Request Class
Response Class
Target Class
CDPSession Class
Coverage Class
Debugging
總結(jié)
以上是生活随笔為你收集整理的pyppeteer有java版本吗_Pyppeteer中文文档_序言_安装_基本使用及注意事项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flowable支持的mysql版本_F
- 下一篇: java char字符转编码_一、jav