使用Chrome、Firefox等浏览器的开发者工具采集信息
微wx笑
2022-07-27【前端开发】
5
0关键字:
信息采集 开发者工具 Chrome Firefox
有些内容是需要登录才可以查看的,后台处理登录逻辑比较麻烦;有些网站的实际内容是通过JS加载的,通过后台抓取的话根本抓取不到内容;还有的是通过JS+Canvas展示的内容,更是无法复制和下载,有没有比较好的办法呢?
有些内容是需要登录才可以查看的,后台处理登录逻辑比较麻烦;有些网站的实际内容是通过JS加载的,通过后台抓取的话根本抓取不到内容;还有的是通过JS+Canvas展示的内容,更是无法复制和下载,有没有比较好的办法呢?
有一种方法是:使用Chrome、Firefox等浏览器的开发者工具采集信息
// https://www.doc88.com/p-845684108744.html
var page = document.getElementsByClassName("inner_page");
var idx = 0;
var bookname = "xxx绝密教程总结";
var token = 'token';
function upbook(){
var data = new FormData();
data.append('token', token);
data.append('name', bookname);
data.append('page', idx+1);
data.append('imgdata', page[idx].toDataURL("image/png").substr(22));
var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://czsc.ivu4e.com/doc88/savebook.php', true);
xhr.responseType = 'text';
xhr.onload = function () {
if (this.status == 200) {
console.log(this.response);
idx += 1;
setTimeout(function (){
upbook();
}, 1000);
}else{
console.log(this.status);
}
};
xhr.send(data);
};
upbook();这需要有自己的网站后台程序来配合
<?
// http://www.doc88.com/p-1116070150325.html
header("Access-Control-Allow-Origin: *");// http://www.doc88.com
header('Access-Control-Allow-Methods:*');
header('Access-Control-Allow-Headers:*');
$token = "token";
if(empty($_POST['token'])){
die('permission denied ...');
}
if($token !== $_POST['token']){
die('permission denied ......');
}
//echo time();
$bookName = "";
$filename = "";
if (isset($_POST['name'])){
$bookName = $_POST['name'];
}
if (empty($bookName)){
die("图书名称‘name’不能为空");
}
$page = 1;
if (isset($_POST['page'])){
$page = intval($_POST['page']);
}
if (empty($page)){
die("图书页码‘page’不能为空");
}
if ($page < 10){
$filename = "0" . $page;
}else{
$filename = $page;
}
$dirname = "bookdir";
$filepath = $dirname . "/" . $bookName . "_" . $filename . ".png";
//创建目录失败
if (!file_exists($dirname) && !mkdir($dirname, 0777, true)) {
die("ERROR_CREATE_DIR");
return;
} else if (!is_writeable($dirname)) {
die("ERROR_DIR_NOT_WRITEABLE");
return;
}
if (isset($_POST['imgdata'])){
$base64Data = $_POST['imgdata'];
$img = base64_decode($base64Data);
//移动文件
if (!(file_put_contents($filepath, $img) && file_exists($filepath))) { //移动失败
die("ERROR_WRITE_CONTENT");
} else { //移动成功
echo "https://czsc.ivu4e.com/doc88/" . $filepath;
}
}
?>在采集doc88的文档的时候,需要先把文档所有页面内容都查看一下,再快速回到顶部执行,
执行的同时滚动滚动条向下显示将要采集的页面
这里存在一个问题就是:如果内存不够用的话,有些页面可能会被浏览器清理了,这样在没有显示出来的情况,可能采集到的内容是空的。
本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/front/2022-07-27/1327.html



