亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

如何用Node寫頁面爬蟲的工具集

 更新時(shí)間:2018年10月26日 11:54:02   作者:SP-Lyu  
這篇文章主要介紹了如何用Node寫頁面爬蟲的工具集,主要介紹了三種方法,分別是Puppeteer、cheerio和Auto.js,感興趣的小伙伴們可以參考一下

最近做了幾個(gè)寫爬蟲的小項(xiàng)目(從頁面端到APP端的都有),在網(wǎng)上搜尋了一番好用的爬蟲工具,做了個(gè)工具集整理:

Puppeteer

簡(jiǎn)介

Puppeteer 是一個(gè)Node庫,它提供了一個(gè)高級(jí) API 來通過 DevTools協(xié)議控制Chromium或Chrome。簡(jiǎn)單點(diǎn)說,就是使用Node命令控制一個(gè)無需渲染至用戶界面的瀏覽器。

與使用 PhantomJS 搭配 Python 進(jìn)行爬蟲抓取類似,其原理也是去完全地模擬一個(gè)瀏覽器進(jìn)行頁面的渲染,從而抓取其中某些特定的內(nèi)容。

特性

Puppeteer 可以完整地模擬一個(gè)瀏覽器的行為,并且可以進(jìn)行截圖、攔截瀏覽器請(qǐng)求、獲取Cookie、通過Node注入JS代碼等操作,使用Chrome瀏覽器開發(fā)者工具能做到的,Puppeteer也能做到。

使用起來也十分的簡(jiǎn)單,以下是官方的例子:

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();
})();

在GitHub上放了一份自己寫的使用Puppeteer獲取微博cookie的代碼,歡迎查看:

https://github.com/SP-Lyu/puppeteer_weibo_cookie/blob/master/index.js

由于 Puppeteer 基于Chromium,每次都需要載入頁面再進(jìn)行頁面分析,性能十分有限,下面提到的 cheerio 則可以從另一層面解決這個(gè)問題。

文檔

GitHub 

中文API地址

cheerio

cheerio 是一個(gè)輕型靈活,類jQuery的對(duì)HTML元素分析操作的工具。在進(jìn)行一些server端渲染的頁面以及一些簡(jiǎn)單的小頁面的爬取時(shí), cheerio 十分好用且高效。

特性

cheerio 包括了jQuery的核心子集,意味著可以直接使用jQuery的API進(jìn)行元素的操控,官方的例子:

const cheerio = require('cheerio')
const $ = cheerio.load('<h2 class="title">Hello world</h2>')

$('h2.title').text('Hello there!')
$('h2').addClass('welcome')

$.html()
//=> <h2 class="title welcome">Hello there!</h2>

自己寫的獲取某個(gè)網(wǎng)站的所有a鏈接:

const cheerio = require('cheerio');
const get = function(){/*HTTP get請(qǐng)求...*/}
(async ()=>{
 const html = await get(`http://example.com`);
 const $ = cheerio.load(html);
 const $dom_arr = $('a');
 $dom_arr.each((index, elem)=>{
  const url = $(elem).attr('href') || '';
  console.log(url);
 });
})();

文檔

GitHub

Auto.js

國(guó)人開發(fā)的,使用js編寫代碼操作Android設(shè)備的自動(dòng)化工具,對(duì)于爬取某些加固措施較好的APP來說十分有用,而且有非常完善的文檔以及社區(qū),十分良心。

使用Auto.js進(jìn)行設(shè)備自動(dòng)化操作,再通過代理進(jìn)行請(qǐng)求數(shù)據(jù)的獲取,能繞開加固中難以破解的加密串。

特性

作為爬蟲工具,好處有:

  1. 采用JavaScript作為腳本語言開發(fā),JS開發(fā)者0成本接入;
  2. 兼容性良好,大多數(shù)任務(wù)不需要root權(quán)限;
  3. 自帶界面分析工具,方便定位需要操作的元素。

從Auto.js載入某個(gè)APP,并點(diǎn)擊進(jìn)入某個(gè)頻道的例子:

// 聲明環(huán)境
auto();
// 設(shè)備常亮
device.keepScreenDim();
// 調(diào)起APP
launchApp('頭條');
sleep(10000);
// 找到某個(gè)頻道,并點(diǎn)擊進(jìn)入
var rect = text('視頻').findOnce().bounds();
var x = rect.centerX();
var y = rect.centerY();
click(x, y);
// 點(diǎn)擊進(jìn)入詳情,使用代理抓取并處理請(qǐng)求...
...

文檔

GitHub
中文文檔
社區(qū)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • NodeJS?基于?Dapr?構(gòu)建云原生微服務(wù)應(yīng)用快速入門教程

    NodeJS?基于?Dapr?構(gòu)建云原生微服務(wù)應(yīng)用快速入門教程

    Dapr?是一個(gè)可移植的、事件驅(qū)動(dòng)的運(yùn)行時(shí),它使任何開發(fā)人員能夠輕松構(gòu)建出彈性的、無狀態(tài)和有狀態(tài)的應(yīng)用程序,并可運(yùn)行在云平臺(tái)或邊緣計(jì)算中,它同時(shí)也支持多種編程語言和開發(fā)框架,本文重點(diǎn)介紹NodeJS云原生微服務(wù)應(yīng)用,感興趣的朋友一起看看吧
    2022-07-07
  • node.js入門學(xué)習(xí)之url模塊

    node.js入門學(xué)習(xí)之url模塊

    最近在學(xué)習(xí)nodejs,知道了如何用nodejs創(chuàng)建一個(gè)簡(jiǎn)單的小項(xiàng)目。例如如何創(chuàng)建一個(gè)服務(wù)器啦,例如http.createServer,還有根據(jù)不同的請(qǐng)求路徑來設(shè)置路由選擇啦,模塊引入,創(chuàng)建模塊啦,下面這篇文章主要介紹了node.js中url模塊的相關(guān)資料,需要的朋友可以參考下。
    2017-02-02
  • Node?文件查找優(yōu)先級(jí)及?Require?方法文件查找策略

    Node?文件查找優(yōu)先級(jí)及?Require?方法文件查找策略

    這篇文章主要介紹了Node文件查找優(yōu)先級(jí)及Require方法文件查找策略。文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • node連接mysql,并操作mysql方式

    node連接mysql,并操作mysql方式

    這篇文章主要介紹了node連接mysql,并操作mysql方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • 詳解NodeJs支付寶移動(dòng)支付簽名及驗(yàn)簽

    詳解NodeJs支付寶移動(dòng)支付簽名及驗(yàn)簽

    本文主要介紹了NodeJs支付寶移動(dòng)支付簽名及驗(yàn)簽的方法,具有一定的參考價(jià)值,下面跟著小編一起來看下吧
    2017-01-01
  • Windows下Node.js安裝及環(huán)境配置方法

    Windows下Node.js安裝及環(huán)境配置方法

    這篇文章主要為大家介紹一下Node.js安裝及環(huán)境配置方法,這也是腳本之家小編發(fā)現(xiàn)的比較詳細(xì)的教程了,從安裝到配置都很詳細(xì),想學(xué)習(xí)Node.js的朋友可以參考一下
    2017-09-09
  • Centos7 中安裝 Node.js v4.4.4

    Centos7 中安裝 Node.js v4.4.4

    我一直對(duì)學(xué)習(xí)Node.js比較感興趣。這是一個(gè)Java平臺(tái)的服務(wù)器端編程 ,它允許開發(fā)人員在服務(wù)器編寫Java代碼,并且有許多CentOS的用戶正努力學(xué)習(xí)這個(gè)語言的開發(fā)環(huán)境。這正是我想做這個(gè)教程的目的。
    2016-11-11
  • Nest.js系列學(xué)習(xí)之初識(shí)nest項(xiàng)目框架及服務(wù)

    Nest.js系列學(xué)習(xí)之初識(shí)nest項(xiàng)目框架及服務(wù)

    這篇文章主要為大家介紹了Nest.js系列學(xué)習(xí)之初識(shí)nest項(xiàng)目框架及服務(wù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 如何在node環(huán)境實(shí)現(xiàn)“get數(shù)據(jù)解析”代碼實(shí)例

    如何在node環(huán)境實(shí)現(xiàn)“get數(shù)據(jù)解析”代碼實(shí)例

    這篇文章主要介紹了如何在node環(huán)境實(shí)現(xiàn)“get數(shù)據(jù)解析”代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 使用基于Node.js的構(gòu)建工具Grunt來發(fā)布ASP.NET MVC項(xiàng)目

    使用基于Node.js的構(gòu)建工具Grunt來發(fā)布ASP.NET MVC項(xiàng)目

    這篇文章主要介紹了使用基于Node.js的構(gòu)建工具Grunt來發(fā)布ASP.NET MVC項(xiàng)目的教程,自動(dòng)化構(gòu)建工具Grunt具有編譯壓縮單元測(cè)試等功能,十分強(qiáng)大,需要的朋友可以參考下
    2016-02-02

最新評(píng)論