背景:事情源于我用python抓图的时候碰到图片的url用js加密,这种情况一般会发生在漫画网站或者是论坛中。用一般 view-source: 的方法无法直接解析。因此在MOOC视频的启发下,开始用phantomjs进行解析页面,并输出图片正确的url。

1 网址

http://jandan.net/ooxx

2 安装环境

python 3.6 Download Python | Python.org
nodejs  Node.js

phantomjs  Download PhantomJS

3 js代码

将其保存为 “pic.js”,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
var num = 1;
GetPic('http://jandan.net/ooxx/page-' + num);

function GetPic(url)
{
console.log('->' + url);
num++;
var page = require('webpage').create();
page.open(url, function(status)
{
if(status === "success")
{
// 处理页面
var pic_url = page.evaluate(function()
{
// DOM操作
var arr = new Array();
var len = document.getElementsByTagName('img').length;
for(var i = 0;i<len;i++)
{
//非ie浏览器正常
arr[i] = document.getElementsByTagName('img'[i].getAttribute("src");
}
return arr;
});
console.log('img cnt:' + pic_url.length);
for (var i=0;i<pic_url.length;i++)
{
console.log(pic_url[i]);
}
//console.log('***D***'); //open函数结束位置
GetPic('http://jandan.net/ooxx/page-' + num);
}
else
{
console.log('Failed!');
}
//phantom.exit();
});
//console.log('***E***');
//phantom.exit();
}

4 运行

打开cmd,cd进入代码的根目录下,执行以下命令:

1
phantomjs pic.js

效果如图:

5 下载图片

配合IDM批量导入,或者Aria2配合食用。