搜索自考资料,在网上搜了下这些文档都是能够随便看,可是下载要钱的javascript
先找目标网址 https://max.book118.com/html/2016/1224/76473555.shtmhtml
不用登录,耶耶耶java
方法一json
虽然页面禁止右键行为,可是只要浏览器禁止页面js或者是打开改单独图片地址就行了浏览器
settingsapp
而后经过右键保存,可是数量太多了,想一想就麻烦ui
不如作点啥吧。url
方法二htm
发现是一个iframe,那打开看看好了,就到了下面的页面blog
那我只须要第一个接口的信息,后面的接口参数就都有了
打开单张图片地址发现返回的参数就是图片的完整连接参数的一部分
下面看粗糙代码
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();
下面是部分结果