zoukankan      html  css  js  c++  java
  • 爬个资料吧

    搜索自考资料,在网上搜了下这些文档都是可以随便看,但是下载要钱的

    先找目标网址  https://max.book118.com/html/2016/1224/76473555.shtm

    不用登陆,耶耶耶

    方法一

    虽然页面禁止右键行为,但是只要浏览器禁止页面js或者是打开改单独图片地址就好了

    settings

    然后通过右键保存,但是数量太多了,想想就麻烦

    不如做点啥吧。

    方法二

     

    发现是一个iframe,那打开看看好了,就到了下面的页面

     

    那我只需要第一个接口的信息,后面的接口参数就都有了

     

    打开单张图片地址发现返回的参数就是图片的完整链接参数的一部分

     

    下面看粗糙代码

    var superagent = require('superagent');
    var fs = require("fs");
    
    var i = 0;//文件名
    function test(imgs){//下载图片
    	var _img = '7o@o7xcocmkL_slKMQRJ7BmfZy6MmpTR2LRhppJrt@1YmiPLbwQiPSyNJDH6cy0dKYx_OqO5XxA='//第一张图片的部分地址
    	if(imgs){
    		_img = imgs
    	}
    	var saveImg = 'https://view57.book118.com/img/?img='+_img//需要下载的图片地址
            superagent
            .get(saveImg)
            .send({
            	img:_img
            })
            .end((err,res)=>{
            	console.log('img==='+res.body)
            	res.setEncoding("binary")
            	i++;
            	var tmp = "./aa/"+ i +".png"
            	fs.writeFile(tmp, res.body, "binary", function (err) {
    		        if (err) {
    		          return console.error(err);
    		        }else{
    		        	 console.log("保存成功");
    		        	 setTimeout(function(){//做人低调
    		        	 	 getUrl(_img);
    		        	 },1500)
    		        }
    		       
    	        });
            })
    	
    }
    
    
    function getUrl(_img){//获取图片地址参数
    	superagent
        .get('https://view57.book118.com/pdf/GetNextPage/?f=RjpcT2ZmaWNlV2ViMzY1XE9mZmljZVdlYlxjYWNoZVxQREZcMTE2MTIyNDE0MDMyMzEzMjUwMjEwMTQ1NDVfMTgxMjQ4XDIxMTM0MzUtNTg1ZTBmYWI0Njk4Yi5kb2MudGVtcA%3D%3D&img=7o%40o7xcocmkL_slKMQRJ7BmfZy6MmpTR2LRhppJrt%401YmiPLbwQiPfCa5XE1j4YCnc1NXftPWUs%3D&isMobile=false&isNet=True&readLimit=m05GD%40CZT1P0GOn8Lv_JjQ%3D%3D&furl=o4j9ZG7fK96K7ALNwHnKKQSGvsVp16t3OGQ8hCU%40qfk6tlpWD7Ja6aejeMBHDc30Bl0SYXklcX15I0vqB0%40iSi0tdf2506q8tknYr5_l2nM%3D')
        .set('Accept','application/json, text/javascript, */*; q=0.01')
        .set('Content-Type','application/json; charset=utf-8')
        .set('Connection','keep-alive')
        .set('Cookie','__cfduid=d36900c15ce242f30af1efa4ffa36dae31522302561; CLIENT_SYS_UN_ID=3rvhcVv2CTUEqq/kHfvAAg==; Hm_lvt_5d91dc9c92e499ab00ba867fc2294136=1542852289,1542852292,1542855730; Hm_lpvt_5d91dc9c92e499ab00ba867fc2294136=1542855772')
        .set('Host','view57.book118.com')
        .set('Referer','https://view57.book118.com/pdf/dXAxNS5ib29rMTE4LmNvbS44MFwyMTEzNDM1LTU4NWUwZmFiNDY5OGIuZG9j?readpage=m05GD%40CZT1P0GOn8Lv_JjQ%3D%3D&furl=o4j9ZG7fK96K7ALNwHnKKQSGvsVp16t3OGQ8hCU%40qfk6tlpWD7Ja6aejeMBHDc30Bl0SYXklcX15I0vqB0%40iSi0tdf2506q8tknYr5_l2nM%3D&token=PDWfni5ovTsVBbpwUGR6QPhtBOXaydS6')
        .set('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36')
        .set('X-Requested-With','XMLHttpRequest')
        .send({
        	img:_img
        })
        .end((err,response)=>{
        	var res = JSON.parse(response.text)
            console.log(res.NextPage);//拿到下个接口需要的参数
            
            
        	test(res.NextPage)
          
            
        })
    }
    test(); 

     下面是部分结果

  • 相关阅读:
    从Pycharm说起
    前端工程师小A学习JS的旅程
    模板引擎开发(一)
    Bootstrap01
    Passbook详解与开发案例
    DLL文件知多少?
    C#中的索引器的简单理解和用法
    python 的列表遍历删除
    Node.js与Golang使用感受与小结1
    解决设计中的两难问题
  • 原文地址:https://www.cnblogs.com/92xcd/p/10001347.html
Copyright © 2011-2022 走看看