成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一日一技:效率提高十倍,Puppeteer 如何啟動交互模式?

開發 前端
當我們使用 Selenium 開發爬蟲的時候,使用 Jupyter 寫代碼會比用 PyCharm 寫代碼更方便。

[[358209]]

當我們使用 Selenium 開發爬蟲的時候,使用 Jupyter 寫代碼會比用 PyCharm 寫代碼更方便。如果使用 PyCharm 寫代碼并直接運行,當某一行報錯的時候,整個程序就掛了,改了代碼以后必須完全從頭開始,這樣會非常浪費時間。但如果使用 Jupyter 寫代碼,那么我們只需要重試出問題的這一行代碼就可以了,不需要把整個程序再重啟一次。

但如果我們使用 JavaScript 操作 Puppeteer,應該怎么實現寫一行代碼,運行一行代碼呢?

我們知道,Node.js 的命令行本身確實是可以實現寫一行代碼運行一行的,如下圖所示:

 

但 Puppeteer 的代碼 跟上面的這段代碼有點不一樣,我們先來看看 Puppeteer 官方文檔里面,是怎么寫的代碼:

 

注意,其中有很長一段函數是使用async聲明的,它是異步函數。在 Node.js 的交互環境里面,必須把整段函數全部寫進去,一次性運行,不能一段一段運行。如果嘗試一段一段運行的話,代碼就會報錯,我們來看看:

 

這是因為,await關鍵詞必須在一個異步函數里面使用。它不能單獨出現在最外層。這就要求我們把所有的代碼都寫到一個異步函數里面,然后運行這個異步函數。

但這樣做,跟直接寫一個.js 文件來運行有什么區別?我每次想測試一個 XPath 語句能否正常運行,都要把整個代碼重新跑一邊。這不是白白浪費了交互環境的優勢嗎?

但實際上,Node.js 與 Chrome 本身就有一個很好用的交互環境,但很多人可能并不知道。

要啟動這個交互模式,實際上非常簡單。我們從0開始來創建這個環境。

首先,我們創建一個文件夾test_puppeteer,然后使用 npm 或者yarn安裝puppeteer-core。使用puppeteer-core而不是puppeteer,是因為前者可以直接使用系統的 Chrome,而后者需要下載一個幾百 MB 的 Chromium,非常浪費時間。

  1. mkdir test_puppeteer 
  2. cd test_puppeteer 
  3. yarn add puppeteer-core 

上面的命令執行完成以后,我們就可以啟動這個交互環境了。

執行命令:

  1. node --inspect 

運行效果如下圖所示:

 

現在,隨便開一個 Chrome 的窗口,打開開發者工具,如下圖所示:

 

大家注意,在開發者工具菜單欄的左上角,圖中箭頭所指向的位置,出現了 Node.js 的綠色 Logo。我們點擊一下它。

此時,會彈出一個單獨的開發者工具窗口,如下圖所示:

 

這個窗口會自動關聯上我們剛才啟動的 Node.js。

現在,我們試一試直接在這個開發者工具的 Console標簽頁上面寫一些代碼:

 

可以看到,在Console標簽頁打印出來的內容,也會在終端窗口出現??雌饋?,不過是從黑色窗口寫代碼變成了在白色窗口寫代碼,這有什么好炫耀的?

現在,我們先來看看你電腦上的 Node.js 的版本是多少,如果小于14,那么就趕緊升級,讓他大于等于14。然后再次執行剛剛我們的命令,如下圖所示。

 

接下來,跟剛才一樣的步驟,我們啟動開發者工具,然后嘗試直接調用Puppeteer,不可思議的一幕出現了:

 

現在我們已經可以直接使用await了!現在,在這個 Console選項卡上面,我們就可以像在 Jupyter 里面寫 JavaScript 代碼了,寫一行,運行一行,看看效果,再寫一行,再運行一行。

我們嘗試在這里打開我的博客:

 

 

可以看到,我在代碼里面故意寫錯了一部分,應該用await browser.NewPage()但是我寫的是await browser.page,導致程序報錯。但是沒關系。我下面重新改成正確的就可以了。整個過程不需要重啟瀏覽器。你運行一行代碼,它執行一行代碼,代碼錯了,只需要改這一行重新執行就可以了。這才叫做交互環境。

 本文轉載自微信公眾號「未聞Code」,可以通過以下二維碼關注。轉載本文請聯系未聞Code公眾號。

 

責任編輯:武曉燕 來源: 未聞Code
相關推薦

2024-08-27 22:08:13

2021-10-15 21:08:31

PandasExcel對象

2025-05-28 03:15:00

Scrapy數據sleep

2022-06-28 09:31:44

LinuxmacOS系統

2023-10-28 12:14:35

爬蟲JavaScriptObject

2024-07-30 08:16:18

Python代碼工具

2022-03-12 20:38:14

網頁Python測試

2024-07-30 08:11:16

2024-11-11 00:38:13

Mypy靜態類型

2021-05-08 19:33:51

移除字符零寬

2021-04-27 22:15:02

Selenium瀏覽器爬蟲

2021-04-12 21:19:01

PythonMakefile項目

2020-12-11 06:30:00

工具分組DataFrame

2022-03-07 09:14:04

Selenium鼠標元素

2024-02-20 22:13:48

Python項目Java

2020-05-19 13:55:38

Python加密密碼

2021-02-14 22:22:18

格式圖片 HTTP

2021-09-26 05:01:55

Scrapy項目爬蟲

2024-12-27 00:44:44

MarkdownPrompt大模型

2021-09-13 20:38:47

Python鏈式調用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天久久| 99精品欧美一区二区蜜桃免费 | 国产欧美在线 | 国产成人免费视频网站视频社区 | 韩国av网站在线观看 | 精品福利一区二区三区 | 一级在线视频 | 中文字幕一区在线观看视频 | 色综合久久久久 | 91麻豆精品国产91久久久更新资源速度超快 | 精品国产精品三级精品av网址 | 国产在线精品一区二区 | 亚洲精品日韩综合观看成人91 | 精品www| 一区二区三区国产精品 | 欧美日韩在线成人 | 国产成人精品久久二区二区91 | 日韩精品一区二区三区在线观看 | 密室大逃脱第六季大神版在线观看 | 人人看人人干 | 91久久精品一区二区二区 | 一区在线观看 | 亚洲精品国产偷自在线观看 | 男女免费观看在线爽爽爽视频 | 亚洲一区久久 | 青青草一区 | 九一视频在线观看 | 日韩精品国产精品 | 免费在线观看黄色av | 中文字幕在线精品 | 在线观看国产三级 | 国产精品久久久久久久久久久久久久 | 99在线免费观看视频 | 天天干天天操天天看 | 2019天天操 | 91久久视频 | 亚洲成人网在线 | 波多野结衣精品在线 | 午夜精品影院 | 午夜精品一区二区三区在线观看 | 国产精品一区二区av |