日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pyppeteer有java版本吗_Pyppeteer中文文档_序言_安装_基本使用及注意事项

發(fā)布時(shí)間:2024/9/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pyppeteer有java版本吗_Pyppeteer中文文档_序言_安装_基本使用及注意事项 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Pyppeteer中文文檔_序言_安裝_基本使用及注意事項(xiàng)

Pyppeteer是Puppeteer Javascript(無頭) chrome/chromium 瀏覽器自動(dòng)化庫的Python非官方端口,Puppeteer是在Node.js中使用的,而Pyppeteer是專用于Python語言的。

本文檔對(duì)應(yīng)的是Pyppeteer的v0.0.25版本,從目前情況來看,Pyppeteer已經(jīng)很久沒更新了,但對(duì)于要求不是非常高的爬蟲和自動(dòng)化測(cè)試使用起來還是沒問題的。

當(dāng)前文章中會(huì)介紹一下安裝、使用等一些注意事項(xiàng),在后續(xù)的文章中會(huì)逐一介紹各個(gè)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地址進(jìn)行安裝。

輸入:pip install -U git+https://github.com/miyakogi/pyppeteer.git@dev,等待安裝完畢即可。

使用

在第一次使用Pyppeteer時(shí),它會(huì)自動(dòng)下載最新版本的Chromium(~170MB Mac, ~282MB Linux, ~280MB Win),如果你不希望它自動(dòng)下載,那么在運(yùn)行任何Pyppeteer腳本之前,手動(dòng)運(yùn)行pyppeteer-install命令即可下載(似乎這沒什么用,普遍情況下我們都會(huì)采用自動(dòng)下載的方式)。

示例:打開頁面并截屏

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)域的一些差異,在使用及運(yùn)行效率上略有區(qū)別,但不影響其結(jié)果。

選項(xiàng)的關(guān)鍵字參數(shù)

Puppeteer使用對(duì)象(Python使用字典)組成選項(xiàng)傳遞給方法或函數(shù),Pyppeteer可接受字典類型和關(guān)鍵字參數(shù)類型作為選項(xiàng)。

字典樣式選項(xiàng)(類似于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表達(dá)式字符串,Pyppeteer采用Javascript字符串。Javascript字符串可以是函數(shù)或者表達(dá)式。Pyppeteer會(huì)自動(dòng)嘗試檢查字符串是函數(shù)還是表達(dá)式,但有時(shí)會(huì)失敗。如果表達(dá)式字符被視為函數(shù)并應(yīng)發(fā)錯(cuò)誤,可以添加force_expr=True參數(shù),這將強(qiáng)制Pyppeteer把字符串視為表達(dá)式。

示例:獲取頁面內(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。