19
回答
采集遇到的问题,直接页面源文件没有图片地址,用firebug能看到地址!
终于搞明白,存储TCO原来是这样算的>>>   

采集遇到的问题,直接页面源文件没有图片地址,用firebug能看到地址!

 

举报
kukala
发帖于4年前 19回/1K+阅
共有19个答案 最后回答: 4年前

我使用Java搞定了,PHP估计也差不多的。

d:/test.js的内容如下:(即,从这个URLhttp://tel.dm5.com/m117793-p2/chapterimagefun.ashx?cid=117793&page=2&language=1&key=抓取过来的)

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('m 6(){2 7=4;2 a="9";2 8="l://k.n.q.p/o/e/4";2 3=["/c.5","/b.1","/f.1","/j.1","/h.5","/g.1","/r.1","/A.1","/z.1","/y.1","/C.5","/B.1","/u.1","/t.1","/s.1"];w(2 i=0;i<3.v;i++){3[i]=8+3[i]+\'?7=4&a=9\'}x 3}2 d=6();',39,39,'|png|var|pvalue|117793|jpg|dm5imagefun|cid|pix|8c6380e81de97a16f6655ceb52f56e39|key|3_7244|2_8254||10726|4_8504|7_8495|6_3863||5_9997|manhua21|http|function|tel|11|com|cdndm5|8_6716|16_6712|15_7857|14_6401|length|for|return|11_9919|10_6445|9_8412|13_7706|12_5925'.split('|'),0,{}))
Java代码如下:
public static void main(String[] args) throws Exception {
	String code = FileUtil.readFile(new File("d:/test.js"));
      //先去掉js的eval
	String script = code.replace("eval", "");
	
	ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
      //然后用Java的JS引擎来eval这段脚本,得到的是解密后的脚本
	String function = (String)engine.eval(script);
      //为了直接获取执行函数后的结果
	function = function.replace("var d=dm5imagefun()", "; dm5imagefun()");
    Compilable compilable = (Compilable) engine;  
    CompiledScript JSFunction = compilable.compile(function); //解析编译脚本函数  
  //执行函数获得结果
    NativeArray rs = (NativeArray)JSFunction.eval();  
    for(int i=0; i < rs.getLength(); i++) {
        System.out.println(rs.get(i, rs));
   }
}
执行上述代码,输出如下:
http://manhua21.tel.cdndm5.com/11/10726/117793/2_8254.jpg?cid=117793&key=8c6380e81de97a16f6655ceb52f56e39
http://manhua21.tel.cdndm5.com/11/10726/117793/3_7244.png?cid=117793&key=8c6380e81de97a16f6655ceb52f56e39
http://manhua21.tel.cdndm5.com/11/10726/117793/4_8504.png?cid=117793&key=8c6380e81de97a16f6655ceb52f56e39
http://manhua21.tel.cdndm5.com/11/10726/117793/5_9997.png?cid=117793&key=8c6380e81de97a16f6655ceb52f56e39
http://manhua21.tel.cdndm5.com/11/10726/117793/6_3863.jpg?cid=117793&key=8c6380e81de97a16f6655ceb52f56e39
http://manhua21.tel.cdndm5.com/11/10726/117793/7_8495.png?cid=117793&key=8c6380e81de97a16f6655ceb52f56e39
http://manhua21.tel.cdndm5.com/11/10726/117793/8_6716.png?cid=117793&key=8c6380e81de97a16f6655ceb52f56e39
http://manhua21.tel.cdndm5.com/11/10726/117793/9_8412.png?cid=117793&key=8c6380e81de97a16f6655ceb52f56e39
http://manhua21.tel.cdndm5.com/11/10726/117793/10_6445.png?cid=117793&key=8c6380e81de97a16f6655ceb52f56e39
http://manhua21.tel.cdndm5.com/11/10726/117793/11_9919.png?cid=117793&key=8c6380e81de97a16f6655ceb52f56e39
http://manhua21.tel.cdndm5.com/11/10726/117793/12_5925.jpg?cid=117793&key=8c6380e81de97a16f6655ceb52f56e39
http://manhua21.tel.cdndm5.com/11/10726/117793/13_7706.png?cid=117793&key=8c6380e81de97a16f6655ceb52f56e39
http://manhua21.tel.cdndm5.com/11/10726/117793/14_6401.png?cid=117793&key=8c6380e81de97a16f6655ceb52f56e39
http://manhua21.tel.cdndm5.com/11/10726/117793/15_7857.png?cid=117793&key=8c6380e81de97a16f6655ceb52f56e39
http://manhua21.tel.cdndm5.com/11/10726/117793/16_6712.png?cid=117793&key=8c6380e81de97a16f6655ceb52f56e39
OK的话,给最佳答案吧,哈。
--- 共有 4 条评论 ---
自风回复 @kukala : :) 不客气 4年前 回复
kukala非常感谢你的帮助! 4年前 回复
自风回复 @kukala : 就是在java代码里执行JS的脚本得到执行后的结果 4年前 回复
kukala不好意思,没有看明白,能说下原理吗? 我现在是把JS输出后的结果ajax到php的。 4年前 回复
图片地址 如果是动态生成的,你得到的源码中肯定没有那部分html.因为渲染是浏览器功能。得到的源码仅仅是文件而已。
--- 共有 2 条评论 ---
唐代de豆腐@kukala 首頁 我覺得你應該搞清楚圖片是怎麼動態生成的,找到原因纔好分析 4年前 回复
kukala请问有什么办法看获取到图片地址?以方便采集! 4年前 回复

用JS控制显示图片,这样你查看源代码就看不到,但是firebug里能看到。

仔细读一下它的JS代码,还是能抓取的

--- 共有 3 条评论 ---
kukala偶JS不行 = =! 4年前 回复
迷路的游侠回复 @kukala : 那就根据ajax请求获得的图片地址去抓取不就行啦? 4年前 回复
kukala看了他的图片地址是用ajax来输出图片地址的,JS不行,不知道怎么获取地址?请教了! 4年前 回复

哪里麻烦了?

其它 方案都比这个麻烦.....


ifram里加对方网址等个一秒之后

var str = $(document.getElementById('iframeId').contentWindow.document.body).html().innerHTML ; //发给主机.再分析

引用来自“抛出异常的爱”的答案

哪里麻烦了?

其它 方案都比这个麻烦.....


ifram里加对方网址等个一秒之后

var str = $(document.getElementById('iframeId').contentWindow.document.body).html().innerHTML ; //发给主机.再分析

<iframe src="http://127.0.0.1/"></iframe>
<script type="text/javascript">
var daima = $(document.getElementById('iframeId').contentWindow.document.body).html();
document.write("<br>");
document.write(daima);
</script>

获取不到任何内容

 

--- 共有 2 条评论 ---
抛出异常的爱$(document.getElementsByTagName('iframe')[1].contentWindow.document.body).get(0).outerHTML 打开chrome开发者工具 在 这一页可以运行 4年前 回复
抛出异常的爱1. iframe需要有id 否则找不到元素 2. 不同浏览器写法不同..... 3.需要settimeout等会内部js运行一段时间 4年前 回复
你把你要采集的地址发出来,我帮你看看能否抓到图片链接,OK的话再在这里回复你
--- 共有 1 条评论 ---
kukala地址是:http://tel.dm5.com/m117793-p2/ get地址是:chapterimagefun.ashx?cid=117793&page=2&language=1&key= 每页获取的数据会变化 4年前 回复
顶部