Python 爬虫如何抓取 JavaScript 渲染后的内容呢?

2016-01-08 22:30:32 +08:00
 RqPS6rhmP3Nyn3Tm

大家好,我就是上次发虫 https://www.v2ex.com/t/245894 的那个,现在想写个新的爬虫,但是遇到了一些问题,特来求助。
原因是这样的,这次想看的漫画在上次那个网站没有,于是想再写一个。漫画的图片是通过 JavaScript 渲染的,因此没法直接抓到。
Google 了一圈,文档很多都很老……
如何解决呢?

8070 次点击
所在节点    问与答
26 条回复
plqws
2016-01-08 22:37:59 +08:00
PhantomJS
feather12315
2016-01-08 22:43:16 +08:00
@plqws 问个问题: phantomJS 能否与异步库 asynico 一起用呢
feather12315
2016-01-08 22:43:48 +08:00
提供另一个思路,分析 Ajax 接口,直接抓取,速度很快
longaiwp
2016-01-08 23:08:49 +08:00
分析到底是怎么渲染的不是更好么(话说我似乎在琉璃见过楼主)
windfarer
2016-01-08 23:12:02 +08:00
看浏览器的 network log ,模拟 ajax 请求
RqPS6rhmP3Nyn3Tm
2016-01-08 23:12:19 +08:00
@longaiwp 不懂 JS ……
都是司机,握手
crab
2016-01-08 23:24:00 +08:00
bdbai
2016-01-08 23:38:05 +08:00
建议啃啃 js + 抓包,那些模拟浏览器的效率太差。
RqPS6rhmP3Nyn3Tm
2016-01-08 23:40:37 +08:00
@bdbai 高三党表示没有太多时间啃 JS …
bdbai
2016-01-09 00:04:53 +08:00
@BXIA 高二党表示高一有时间啃的啊...不过高三了还是尽量少搞这些东西吧。
FrankFang128
2016-01-09 00:06:37 +08:00
用啥翻腾,看请求
aprikyblue
2016-01-09 00:08:25 +08:00
高二狗路过。。先 mark
lz 高三这么晚还不睡
RqPS6rhmP3Nyn3Tm
2016-01-09 00:10:14 +08:00
@aprikyblue 周末怕啥
aprikyblue
2016-01-09 00:13:16 +08:00
@BXIA ...周六不上?
RqPS6rhmP3Nyn3Tm
2016-01-09 00:14:25 +08:00
@aprikyblue 不上😄
icedx
2016-01-09 00:19:53 +08:00
如果想看漫画呢 https://gist.github.com/anonymous/c95fd30a078b74e83e32
如果想要解法呢 请回复小埋大法好
RqPS6rhmP3Nyn3Tm
2016-01-09 00:31:53 +08:00
@icedx 海老名大法好
上次看你发过这个了,是只能爬 dmzj.com 的吧?
aWangami
2016-01-09 01:47:09 +08:00
找到一个接口, LZ 说的是解析这个 JS 吗?

http://www.dm5.com/m178597/chapterfun.ashx?cid=178597&page=1&key=&language=1&gtk=6

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;}('f 8(){1 4=3;1 a=\'9\';1 7="g://h.k-j-6-6.c.e/b/p/3";1 2=["/o.5","/q.5"];l(1 i=0;i<2.m;i++){2[i]=7+2[i]+\'?4=3&a=9\'}n 2}1 d;d=8();',27,27,'|var|pvalue|178597|cid|jpg|113|pix|dm5imagefun|738c55526d53b127b60fb8550a178db9|key|17|cdndm5||com|function|http|manhua1023||147|61|for|length|return|1_9267|16594|2_5542'.split('|'),0,{}))

["http://manhua1023.61-147-113-113.cdndm5.com/17/16594/178597/1_9267.jpg?cid=178597&key=738c55526d53b127b60fb8550a178db9", "http://manhua1023.61-147-113-113.cdndm5.com/17/16594/178597/2_5542.jpg?cid=178597&key=738c55526d53b127b60fb8550a178db9"]
aWangami
2016-01-09 01:52:52 +08:00
icedx
2016-01-09 03:31:30 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/249404

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX