zyhxhw 发表于 2019-12-17 23:41

爬取小说遇到js加密内容,怎么办

近期学了爬虫,试着爬了很多网站的小说,一直很顺利,遇到问题都解决了。可是当爬到这篇小说这个章节时却遇到了问题:
https://www.sztjgold.com/chapter.html?1#mybookid=96803&bookid=108841&chapterid=48935289
通过抓包找到了真实的网址:https://www.sztjgold.com/files/article/html555/108/108841/48935289.html,但这个网址得到的却是这样的内容:
var _0x229e=['w4DCpcOLIsKZVMOo','MD7Di8Ktwoo=','YcObw69ZBh9b','QcOYdVhfw4rDnA==','JXnDv1HCrg==','JcKoCsKtLw==','Hy/CnWk2','w7EbwpTDnU8=','fUfDt8Knwp5cw7o=','w7FpLQ==','w6QGwqnDnW3DjlA=','XlnCkcOB','wpTDqiPDvnNpdg==','T8OQwoYBwqo=','wpIdd3IMGAA=','S8K1Qk4=','Lg3CknYQHSQ=','w4vDvlvDoMOV','wpvCgMOQHEZDUA==','Z8OMw6JPGQdXN8O4','w5LCnXdMKcObw4c=','MMKhVihj','w5HDsMKJw61ywotM','w6PCuyvCsMKBwqHClC7CgcKmZxdEYsK9wrpK','UcOHd0JE','woF9F8K7w5k=','UAUiPRDCvcOGM8KF','wpvDqio=','wqPDhsOXEA==','VcOWaUU=','......................................................................................................
经百度,这是js数据。显然,这段数据包含了小说内容,不过被加密了。而且,这段数据肯定也包含了解密的函数、及需要的参数。但奇怪的是,把这段代码弄到运行js的工具进行运行时候,老是提示缺少“;”,个人认为段数据故意设计了使用js数据运行出错的代码,浏览器在运行这段js数据之前先对这段代码作了修正,然后才运行。所以,要能运行这段js数据就必须对先修改这段代码,这可能要对js非常熟悉的人才办得到吧。看了很多的文章,有人说selenium可以做到,我试了,确实可以,但运行速度太慢了,不知道大牛们有没有更好的办法。

夜泉 发表于 2019-12-17 23:57

断点调试,一步步解密,碰到缺省的加进去;这个比PHP解密还简单

横贯四海 发表于 2019-12-18 00:40

楼上正解!
还有个方法,就是看看有没有JS加密的文件

dayer 发表于 2019-12-18 00:41

这加密加的她妈妈都不认识了。。。别想解密了。直接调用js,拿到返回值就行了。

2Burhero 发表于 2019-12-18 01:00

爬图片啊,诱惑那种

fengxi 发表于 2019-12-18 02:06

dayer 发表于 2019-12-18 00:41
这加密加的她妈妈都不认识了。。。别想解密了。直接调用js,拿到返回值就行了。

哈哈哈 方便快捷:lol

yaoji3713 发表于 2019-12-18 07:56

论爬虫技能的重要性!

zyhxhw 发表于 2019-12-18 08:18

夜泉 发表于 2019-12-17 23:57
断点调试,一步步解密,碰到缺省的加进去;这个比PHP解密还简单

楼主试过了吗,我试过,不行啊。

zyhxhw 发表于 2019-12-18 08:20

本帖最后由 zyhxhw 于 2019-12-18 08:21 编辑

dayer 发表于 2019-12-18 00:41
这加密加的她妈妈都不认识了。。。别想解密了。直接调用js,拿到返回值就行了。
实际上我也赞成楼主的办法,但在哪里调用呢,楼主是在浏览器里调用啊,但怎么在 python中实现呢?

dayer 发表于 2019-12-18 08:41

zyhxhw 发表于 2019-12-18 08:20
实际上我也赞成楼主的办法,但在哪里调用呢,楼主是在浏览器里调用啊,但怎么在 python中实现呢?

我没用python调用过JS,只用过.net玩过。python大概就是引入包execjs。可以试试
页: [1] 2 3 4 5
查看完整版本: 爬取小说遇到js加密内容,怎么办