内容简介:最近做了几个写爬虫的小项目(从页面端到APP端的都有),在网上搜寻了一番好用的爬虫工具,做了个工具集整理:与使用
最近做了几个写爬虫的小项目(从页面端到APP端的都有),在网上搜寻了一番好用的爬虫工具,做了个 工具 集整理:
Puppeteer
简介
Puppeteer
是一个Node库,它提供了一个高级 API 来通过 DevTools协议控制Chromium或Chrome。简单点说,就是使用Node命令控制一个无需渲染至用户界面的浏览器。
与使用 PhantomJS
搭配 Python
进行爬虫抓取类似,其原理也是去完全地模拟一个浏览器进行页面的渲染,从而抓取其中某些特定的内容。
特性
Puppeteer
可以完整地模拟一个浏览器的行为,并且可以进行截图、拦截浏览器请求、获取Cookie、通过Node注入JS代码等操作,使用Chrome浏览器开发者工具能做到的,Puppeteer也能做到,可以说是骚得一匹(误
使用起来也十分的简单,以下是官方的例子:
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的代码,欢迎查看:
github.com/SP-Lyu/pupp…
由于 Puppeteer
基于Chromium,每次都需要载入页面再进行页面分析,性能十分有限,下面提到的 cheerio
则可以从另一层面解决这个问题。
文档
cheerio
cheerio
是一个轻型灵活,类jQuery的对HTML元素分析操作的工具。在进行一些server端渲染的页面以及一些简单的小页面的爬取时, cheerio
十分好用且高效。
特性
cheerio
包括了jQuery的核心子集,意味着可以直接使用jQuery的API进行元素的操控,官方的例子:
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>
复制代码
自己写的获取某个网站的所有a链接:
const cheerio = require('cheerio');
const get = function(){/*HTTP get请求...*/}
(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);
});
})();
复制代码
文档
Auto.js
国人开发的,使用js编写代码操作Android设备的自动化工具,对于爬取某些加固措施较好的APP来说十分有用,而且有非常完善的文档以及社区,十分良心。
使用Auto.js进行设备自动化操作,再通过代理进行请求数据的获取,能绕开加固中难以破解的加密串。
特性
作为爬虫工具,好处有:
- 采用JavaScript作为脚本语言开发,JS开发者0成本接入;
- 兼容性良好,大多数任务不需要root权限;
- 自带界面分析工具,方便定位需要操作的元素。
从Auto.js载入某个APP,并点击进入某个频道的例子:
// 声明环境
auto();
// 设备常亮
device.keepScreenDim();
// 调起APP
launchApp('头条');
sleep(10000);
// 找到某个频道,并点击进入
var rect = text('视频').findOnce().bounds();
var x = rect.centerX();
var y = rect.centerY();
click(x, y);
// 点击进入详情,使用代理抓取并处理请求...
...
复制代码
以上所述就是小编给大家介绍的《用Node写页面爬虫的工具集》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- golang[54]-单任务版爬虫爬取相亲页面
- java爬虫系列第三讲-获取页面中绝对路径的各种方法
- Python3网络爬虫实战---37、动态渲染页面抓取:Selenium
- Python3网络爬虫实战---38、动态渲染页面抓取:Splash的使用
- vue页面跳转后返回原页面初始位置方法
- Flutter 三种方式实现页面切换后保持原页面状态
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web容量规划的艺术
阿尔斯帕瓦 / 叶飞、罗江华 / 机械工业出版社 / 2010-1 / 29.00元
《Web容量规划的艺术》由John Allspaw(F订ickr的工程运营经理)撰写,结合了他个人在F1ickr成长过程中的许多经历和很多其他产业中同行的洞察力。在衡量增长、预测趋势、成本效益等方面,他们的经验都会给你一些可靠并有效的指导。 网站的成功是以使用和增长来衡量的,而且网站类公司的成败(生死)是依赖于他们是否有能力来衡量决定他们的基础结构,从而适应不断增长的需求。作者通过自身实践给......一起来看看 《Web容量规划的艺术》 这本书的介绍吧!
RGB转16进制工具
RGB HEX 互转工具
Markdown 在线编辑器
Markdown 在线编辑器