溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python pyppeteer使用筆記

發(fā)布時間:2020-06-18 12:04:05 來源:網(wǎng)絡(luò) 閱讀:1473 作者:Python熱愛者 欄目:編程語言

pyppeteer -- python版本的puppeteer,一個強(qiáng)大的chronium headless瀏覽器API

最近搞天貓用了一波兒,記錄一下。

先上文檔:?https://miyakogi.github.io/pyppeteer/

舉個最簡單的例子入門一下:

比如打開百度,然后截圖


python pyppeteer使用筆記

下面說一些小技巧:

1、啟動參數(shù)


python pyppeteer使用筆記

注意:同一個用戶目錄(userDataDir)不能被兩個chrome進(jìn)程使用,如果你要多開,記得分別指定用戶目錄。否則會報編碼錯誤。

2、設(shè)置viewport

自動獲取當(dāng)前屏幕大小并設(shè)置viewport


python pyppeteer使用筆記

3、導(dǎo)出或加載cookie

python pyppeteer使用筆記

4、選擇器

讓人極度舒適的一個特性:

使用 page.querySelector如果沒有找到指定的對象,則返回None,而不是拋出異常。不管規(guī)范不規(guī)范,反正比selenium爽多了。

5、hook

在頁面開始加載前注入js代碼,例如修改掉webdriver屬性,讓天貓檢測不到


python pyppeteer使用筆記

6、關(guān)于各種事件的isTrusted

這個js事件屬性,用js是無法偽造的,但是用pyppeteer發(fā)生的各種操作所觸發(fā)的事件,是完全真實的,這個歸功于CDP吧。

7、卡死

如果在操作過程中不小心點擊了某個a標(biāo)簽,導(dǎo)致瀏覽器新打開了一個標(biāo)簽頁,而你的代碼還在傻乎乎的使用之前的page對象做操作的時候,整個進(jìn)程就卡住了

沒有超時、沒有異常、就是完全的不知道在干啥

當(dāng)你把新開的標(biāo)簽頁手動關(guān)閉后,一切就恢復(fù)原樣。

tips:

避免這種情況的發(fā)生,其實也很簡單,就是在每個可能誤操作點擊導(dǎo)致新開標(biāo)簽頁的行為后面都強(qiáng)制關(guān)閉一下其他標(biāo)簽頁:

比如:


python pyppeteer使用筆記


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI