通过油猴的 GM_xmlhttpRequest 可以编写爬虫脚本。记录如下:
需要权限
// @grant GM_xmlhttpRequest
// @connect xxx.com
示例
通过 get 方法访问指定网址,爬取列表内容,并弹窗显示内容。
目标网页
代码如下:
// ==UserScript==
// @name learningTampermonkey
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @include http://*/*
// @include https://*/*
// @require https://cdn.staticfile.org/jquery/1.9.1/jquery.min.js
// @grant GM_xmlhttpRequest
// @grant GM_registerMenuCommand
// @connect gongju.dadiyouhui.cn
// ==/UserScript==
(function() {
'use strict';
// Your code here...
var learningTampermonkey = function(){
var learningTest = function(){
GM_xmlhttpRequest ( {
method: "GET",
url: 'http://gongju.dadiyouhui.cn/zhekoutb_zhide/b60010/tb_zhide.htm',
onload: function (response) {
console.log('已连接');
// 获取网页内容
var webText = response.responseText;
// 创建虚拟 DOM 元素
var el = document.createElement('html');
el.innerHTML = webText;
// 提取虚拟 DOM 元素内目标
var centObj = el.getElementsByClassName('cent');
// 循环输出商品信息
var alertObj=('商品信息\n');
for (var i = 0; i < centObj.length; i++) {
var titleObj = centObj[i].querySelector('h3');
var priceObj = centObj[i].querySelectorAll('div')[2];
alertObj += titleObj.innerText + "\n";
alertObj += priceObj.innerText + "\n";
}
// 弹出商品信息提示窗
alert(alertObj);
},
onerror: function (){
alert('连接失败');
}
} );
};
var RegMenu=function(){
GM_registerMenuCommand("代码测试",function(){
learningTest();
});
};
this.init=function(){
RegMenu();
}
}
var codeTest = new learningTampermonkey();
codeTest.init();
})();
爬虫结果
成功弹窗