自动加载下一页数据采集chrome浏览器插件制作
最近在数据采集过程中遇到aspx __doPostBack数据加载方式,利用火车头(免费版)或php采集程序无有效方法采集,于是手动编写chrome浏览器插件自动点击“下一页”翻页抓取网址数据,继而用火车头采集数据。
manifest.json
{
"name": "数据采集",
"description": "自动点击下一页采集数据",
"version": "2.0",
"permissions": [
"activeTab"
],
"background": {
"scripts": ["bg.js"],
"default_popup": "background.html",
"persistent": true
},
"browser_action": {
"default_title": "SHUJUCAIJI"
},
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["jq.js", "popup.js"],
"run_at": "document_idle"
}
],
"manifest_version": 2
}
popup.js
//吉林律师
$("#DataGrid1 tr:last td span").next().html("
//吉林律所
// 开始获取数据
var html = $("#DataGrid1 tr td a:contains('详细信息')");
var arr = [];
for (var i = html.length - 1; i >= 0; i--) {
arr[i] = html[i].href;
//获取吉林律师id
// arr[i] = arr[i].replace("http://www.lawyer-home.com/ls/zcxx/lsjtxx.aspx?id=",'');
arr[i] = arr[i].replace("http://www.lawyer-home.com/ls/zcxx/lssjtxx.aspx?id=",'');
//获取吉林律所id
};
$.ajax({
url:'http://localhost/gather/public/Index/Jilin/get_num/',
type:'post',
dataType:'json',
data:{'arr':arr},
success:function(res){
if(res.status == 200){
//加载下一页
//吉林律师
$("#DataGrid1 tr:last td li").trigger('click');
//吉林律所
}
}
})
php端接收数据写入txt
public function get_num($arr){
$str = implode(',', $arr);
// echo $str;die;
file_put_contents('jilin.office.txt', $str.PHP_EOL, FILE_APPEND);
// file_put_contents('jilin.lawyer.txt', $str.PHP_EOL, FILE_APPEND);
// var_dump($arr);
return json(['status'=>200, 'message'=>'success']);
}
可以完善查询“下一页”文本适应更多页面。
基础版采集下载:数据采集插件基础演示.rar
可使用contains('下一页')提高通用性