拿JavaScript写爬虫,听起来貌似有些不靠谱?javascript
爬虫,大多人对于爬虫的理解都停留在使用后端语言如Python写的爬虫。可是实际上,使用客户端JavaScript有诸多后端爬虫所没法拥有的优点:php
能够方便的分享给其余人用,只要对方电脑里有浏览器java
因为跑在客户端,几乎能够无视对方网站的反爬虫机制git
能够拥有完善的UI,无开发基础的小白也能够随意使用github
而“客户端JavaScript爬虫如何运行”问题,回答这个问题很是简单,大体有3种运行JavaScript的代码:算法
存浏览器书签,以javascript:
打头,点击便可运行json
复制到浏览器console中按回车后端
有个浏览器扩展叫作“油猴子”浏览器
这里咱们主要看下第三种,油猴脚本方式运行。app
或许你据说过油猴扩展,他在Firefox叫作Greasemonkey
在Chrome叫作Tampermonkey
,你能够轻松的在浏览器的扩展商店找到它。而关于其自己有何做用,一句话
按照规则,在不一样的URL额外运行一段JavaScript代码
请参考下面的例子:
// ==UserScript== // @name Pxer // @include http://www.pixiv.net* // ==/UserScript== javascript:void((function() { document.documentElement.appendChild( document.createElement('script') ).src='http://pxer-app.pea3nut.org/jsonp.js?'+(+new Date); })());
==UserScript==
是油猴脚本的规则,上面的规则告诉油猴:
当浏览器打开
http://www.pixiv.net*
的页面时,执行下面的脚本
而脚本的内容则是:经过jsonp的方式向页面引入一个js文件。
这就能够作不少事了。(不是坏事哦~)
上图是一个二次元插画交流站pixiv.net。图中显示“Pxer 7”的那一个长条是本来不存在与原网站中的,而是经过油猴脚本自动载入JavaScript脚原本建立的。
若想访问图中的原始连接能够点击这里,可能你须要先在pixiv.net注册一个帐号
经过油猴脚本自动载入,你能够作到:
在彻底不影响原网站使用的状况下,利用强大的JavaScript向用户提供额外的功能
再结合一开始提到的优势:
能够给任何人使用!哪怕是无开发基础的小白
不会被封杀!由真实用户操做,封帐号、IP、验证码等反爬虫策略你以为会对客户端爬虫有效吗?
利用HTML+CSS,构建一个漂亮的UI完美融入原网站,简直不能再简单~
忽然莫名的感受很无敌有木有?
空说无凭,来看一个实际的客户端JavaScript爬虫开源项目 —— Pxer
Pxer是一个纯客户端JavaScript编写的爬虫,无需任何配置便可直接在浏览器端运行。
Pxer最大做用是将pixiv.net网站(相似于花瓣网)中的图片做品快速的抓取下来。它不是简单的检索img标签,而是经过必定的算法和Ajax请求来完成更为复杂的功能。
关于项目的详细描述,能够参考项目官网和Github项目主页
良好的jsDOC格式注释和详细的文档都已经为你准备好了~~
让JavaScript来的更猛烈些~~