1. 程式人生 > >Node爬蟲神器Puppeteer安裝記(Windows)

Node爬蟲神器Puppeteer安裝記(Windows)

對於爬蟲,相信大家並不陌生。當希望得到一些網站的資料並做一些有趣的事時,必不可少要爬取網頁,用到爬蟲。而目前網路上也有很多爬蟲的教程資料,不過又尤以python語言居多。想來自己是做web的,就希望以js的方式解決問題,於是希望利用nodejs。今天介紹一款node的爬蟲利器:Puppeteer

Puppeteer正如其名“木偶”,它允許我們像牽線木偶一樣操縱它。它是一個建立在DevTools協議上的提供控制無頭Chrome或Chromium的高階介面的Node庫。官網上對其應用舉了幾個例子:
- 生成網頁的截圖(目前僅支援支援jpeg、png格式)和pdf檔案
- 爬取SPA和非同步渲染網頁
- 自動錶單提交、鍵盤輸入、UI測試等
- 建立最新的自動測試環境,也就是說可以使用最新的瀏覽器特性
- 捕獲站點的時間線以幫助分析效能問題

Puppeteer本質上是一個headless chrome。無頭瀏覽器,相信如果大家做爬蟲肯定有所耳聞。其實就是一個沒有UI介面的瀏覽器,它包含了瀏覽器應該具有的功能,通常做web測試用,不過做爬蟲也是沒問題的。PhantomJS就提供這樣的功能,基於webkit核心,已經有好幾年歷史了。不過因為Puppeteer有背景(谷歌Chrome團隊開發),我最後還是選擇了Puppeteer。它們之間的不同點是後者只關注於Chromium或Chrome。這也導致了最坑的一點是總是繫結最新版本的Chromium。

上面說到Puppeteer會繫結最新版本的Chromium,這意味著每次使用npm i puppeteer

安裝使用它時都會下載最新版本的Chromium,該版本在Windows上大約是130Mb。本來下載npm包就很不易,還要下載一個一百多兆的東西更是難上加難了。當然可以使用cnpm,下圖是我下載的一個介面。可以看到下載了55分鐘,這固然有我網路慢的問題,但是能不下載Chromium就儘量不下載了吧。

這裡寫圖片描述

官網講到可以通過設定環境變數或配置npm config的方式避免下載。但設定環境變數我一直沒有成功,所以接下來講解配置npm config的方式。PUPPETEER_SKIP_CHROMIUM_DOWNLOAD引數可以避免下載,所以可以在安裝puppeteer之前使用下面的命令:

npm config set puppeteer_skip_chromium_download = 1

但這樣每次都要敲這個命令總不是辦法,所以可以將其寫入.npmrc檔案中。npm官網講到有四個影響npm配置的檔案,分別是:專案配置檔案(/path/to/my/project/.npmrc)、使用者配置檔案 (~/.npmrc)、全域性配置檔案($PREFIX/etc/npmrc)、npm內建配置檔案(/path/to/npm/npmrc)。可以使用npm config list來檢視影響npm的配置檔案有哪些。不過這裡面有個問題,就是上面的介紹文件是針對npm最新的6.0版本的。而一般隨nodejs下載的npm版本沒有這麼高,只是npm4.x,導致專案中的配置檔案不生效。可以從下面兩張圖片看到兩種版本的npm的配置檔案的不同(上面一張:npm4.0.2,下面一張npm6.0),可以看到後者多出一個project config列表。

npm4
npm6

身為強迫症的我,當然希望直接在專案目錄中更改配置檔案了,所以使用下面的命令安裝最新版本的npm:

npm install [email protected] -g

然後在專案目錄下建立.npmrc檔案,輸入以下配置命令:

puppeteer_skip_chromium_download = 1

這樣配置之後,就可以跳過下載了,如圖所示:

skipdownload

接著就可以使用它了,以官網的例子為例:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({path: 'example.png'});

  await browser.close();
})();

以為這樣就完了嗎?不,雖然跳過下載的事情解決了,但是因為沒有下載會導致puppeteer無法得知要使用的Chrome或Chromium在哪裡,所以還需要指明啟動路徑。修改一下:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
      // headless: false,//不使用無頭chrome模式
      executablePath: 'C:\\Users\\sunbo\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe',//path to your chrome
  });
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({path: 'example.png'});

  await browser.close();
})();

更改executablePath引數指向你本地chrome所在目錄,注意一定要指向chrome.exe才能正常使用。headless引數也是挺有趣的,如果其值為false,就會真的為我們啟動一個chrome程序,讓我們可以視覺化整個程式執行的過程。

好了,安裝配置好就可以盡情享受Puppeteer帶給我們的美好世界了。最後說一點,官網例子使用async/awaitpromise,所以有必要了解這些非同步知識,這些東西運用好,簡直打開了非同步程式設計的新世界。祝好運!!!

相關推薦

Node爬蟲神器Puppeteer安裝Windows

對於爬蟲,相信大家並不陌生。當希望得到一些網站的資料並做一些有趣的事時,必不可少要爬取網頁,用到爬蟲。而目前網路上也有很多爬蟲的教程資料,不過又尤以python語言居多。想來自己是做web的,就希望以js的方式解決問題,於是希望利用nodejs。今天介紹一款no

Git安裝教程windows

nbsp 配置文件 分享 不同 情況 ros ges 便是 版本控制 Git是當今最流行的版本控制軟件,它包含了許多高級工具,這裏小編就講一下Git的安裝。 首先如下圖:(點擊next) 第二步:文件位置存儲,可根據自己盤的情況安裝 第三步:安裝配置文件,自己需要

python pip 更換國內安裝windows

打開 tar pan ini文件 col window color -h oba 1.點擊此電腦,在最上面的的文件夾窗口輸入 : %APPDATA% 2.按回車跳轉到以下目錄,新建pip文件夾 3.創建pip.ini文件 4.打開文件夾,輸入以下內容,關閉即可(註意:源鏡像

jdk1.71.8 安裝配置Windows

JDK1.7安裝步驟 1.jdk1.7官方下載 首先訪問: http://www.oracle.com/technetwork/java/javase/downloads/index.html 這個地址到官方網站下載頁面 2.安裝jdk1.7 雙擊下載好的安裝包點選接受

解除安裝gitwindows

找到你的安裝資料夾 找到uni開頭的應用程式,如下圖 雙擊此程式 確定即可 如果你用git建立了本地倉庫,想刪除的話 在工具>>資料夾選項>>顯示隱藏檔案然後找到倉庫資料夾,一般是在C:\Users\Administrator目錄 然後刪除.gi

MongoDB 壓縮版安裝教程Windows

下載MongoDB安裝包 MongoDB 下載 解壓到“D:\Program Files\MongoDB\Server\3.4”目錄下 當前檔案建立配置檔案mongo.conf dbpath=D:\Program Files\MongoDB\Serve

Tomcat7及jdk1.7安裝配置Windows

Tomcat7.0.22在Windows下詳細配置過程 一、JDK1.7安裝 1、下載jdk,下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u1-download-513651.html 2、新增系統環境變數

“全棧2019”Java第二章:安裝JDK11Windows

難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 文章原文連結 “全棧2019”Java第二章:安裝JDK11(Windows) 下一章 “全棧2019”Java第三章:安裝開發工

在Anaconda中安裝TensorFlowwindows

注意:TensorFlow的安裝僅支援python3.5版本的,如果之前使用的是python2.7版本,可以考慮重灌或者雙python版本安裝TensorFlow。 雙python版本安裝可參考下面連結: https://www.cnblogs.com/Yu-F

MySql安裝配置windows

MySql安裝配置 下載MySql 下載地址MySql 解壓 把下載好的檔案解壓到C:\Program Files\,然後就有了C:\Program Files\mysql-8.0.13-winx64

RabbitMQ 以及web管理外掛的安裝試用windows

1.下載 RabbitMQ Server 選擇windows下載如下檔案 rabbitmq-server-3.0.0.exe 安裝的時候提示需要安裝erlang,否則web頁面沒有辦法訪問。 頁面中的內容如下,根據自己的環境選擇一個進行下載 Download Erla

【cordova】cordova安裝步驟windows

原文: 【cordova】cordova安裝步驟(windows) 官方安裝文件地址: http://cordova.apache.org/#getstarted 1 安裝nodejs(已經安裝了的請跳過這一步) nodejs官網 https://nodejs

Redis學習之安裝使用Windows

下載的安裝包裡面分別有支援32位和64位系統的檔案,根據自己實際情況選擇,將64位內容拷貝到自定義路徑中,下圖是我的安裝路徑: 開啟Windows的DOS視窗,使用CD命令進入D:\redis 目錄,輸入redis-server.exe redis.conf ,執行

ElasticSearch安裝部署Windows

測試版本:elasticsearch-5.1.1 1、解壓elasticsearch-5.1.1.zip。 2、執行elasticsearch.bat啟動服務,啟動畫面如下: 3、訪問ElasticSearch,訪問地址:http://127.0.0.1:9200/。 4、安裝ElasticSearch

mysql 5.6.17.0 的安裝圖解 windows

1.安裝的準備工作,下載------>關閉防火牆------>連線網路 直接搜尋Mysql就會看到MySql Download  的超連結 進入下載頁 http://dev.mysql.com/downloads/windows/installer/5.6

Redis學習之安裝使用 Windows

下載的安裝包裡面分別有支援32位和64位系統的檔案,根據自己實際情況選擇,將64位內容拷貝到自定義路徑中,下圖是我的安裝路徑: 開啟Windows的DOS視窗,使用CD命令進入D:\redis 目錄,輸入redis-server.exe redis.conf

MySQL最新版5.7.12安裝教程windows

一、從官網下載ZIP Archive檔案 網址:http://dev.mysql.com/downloads/mysql/ 二、解壓 把下載好的壓縮包解壓到你想要安裝的地方 三、配置ini檔案 開啟

Redis之安裝配置Windows

下載 下載地址:https://github.com/MSOpenTech/redis/releases 解壓,檔案的名字重新命名為redis.     開啟資料夾,內容如下: 傳送redis-server.exe、redis-cli.exe到桌面快捷方式【右擊檔案 -> 傳送到 -&

Node.js安裝及環境配置windows

glob node mod script es2017 lob target 技術分享 系統 1.Node.js簡介  簡單的說 Node.js 就是運行在服務端的 JavaScript。Node.js 是一個基於 Chrome V8 引擎的 JavaScript 運行環境

python 爬蟲環境配置中 tesserocr的安裝windows

安裝tesserocr OCR 光學字元識別,翻譯圖形驗證碼。 1.首先安裝tesseract,下載連結 下載地址 2. 安裝 已安裝完畢,不截圖了,安裝時最後一個選擇是下載支援的語言包,大概有1G多,耐心等待即可。 3. 安裝te