暴力猴
前言
随着爬虫的需求越来越大,各种反爬手段层出不穷,有些反爬虫手段很难破解这时候,推荐你用暴力猴,他可以满足你的需求,而且网上的写的参差不齐。
一、油猴插件的介绍?
油猴插件名字是tampermonkey,那为什么什么喜欢称呼其为油猴插件呢!因为tampermonkey是是一款免费的浏览器扩展和最为流行的用户脚本管理器。是用来管理什么用户脚本的呢? 就是油猴脚本啦!所以人们也称tampermonkey为油猴插件。
二、油猴脚本项目实战代码展示
油猴脚本是一段代码,它们能够优化您的网页浏览体验。安装之后,有些脚本能为网站添加新的功能,有些能使网站的界面更加易用,有些则能隐藏网站上烦人的部分内容。在 Greasy Fork 上的用户脚本都是由用户编写并向全世界发表的,您可以免费安装,轻松体验。
代码如下(爬取boss直聘企业版,爬热门城市的简历):
油猴脚本,boss数据爬虫.js
// ==UserScript==
// @name BOSS数据爬虫
// @namespace http://tampermonkey.net/
// @version 0.1
// @description crawl is greate
// @author Mike
// @include https://www.zhipin.com/*
// @require http://cdn.bootcss.com/jquery/1.11.2/jquery.js
// @grant GM_xmlhttpRequest
// ==/UserScript==
var dataList = [];
var $x = function (xpath, context) {
var nodes = [];
try {
var doc = (context && context.ownerDocument) || window.document;
var results = doc.evaluate(xpath, context || doc, null, XPathResult.ANY_TYPE, null);
var node;
while (node = results.iterateNext()) {
nodes.push(node);
}
} catch (e) {
throw e;
}
return nodes;
}
function datalist(){
let li_item_list=$x("/html/body/div/div/div/div/div[2]/div/div/div/div/ul/li");//匹配网页数据
li_item_list.forEach(v=>{
dataList.push({"data":v.innerHTML})
});
}
var server_url = "http://127.0.0.1:5000"//服务器的地址
var dlen=1000
function slide(){
//滚动条总长度
if(dlen<=20000){
var q=document.documentElement.scrollTop=dlen;
//每次滚动500
dlen += 500;
} else {//这里写的是将列表数据,发送给本地服务端,然后可以在服务端用数据库保存
datalist();
console.log(dataList);
GM_xmlhttpRequest({//跨域
method: "POST",
url: server_url,
data : JSON.stringify({'name':"爬虫","dataList":dataList}),
onload: function(response) {
//这里写处理函数
//document.getElementById('text').innerHTML = this.responseText;
console.log(response);
console.log("dataList",dataList);
}
});
clearInterval(setId);
}
}
var setId;
//500ms控制速率
setId = setInterval(slide, 500);
三、小结
安装油猴插件到谷歌,或者火狐上,安装细节去百度
添加脚本:
以爬boss数据为例:
1,编写油猴脚本,要开先启脚本。
2,在pycharm上新建一个flask项目,用来接收油猴发过来的数据,保存到数据库。
3,在新建一个pycharm项目py文件,用来写定时任务,打开浏览器网,导航到要爬的网页。