网页抓取 加密html(西部网盘不能限制抓取网页源码的原因!上图框出的代码即为 )

优采云 发布时间: 2021-09-26 23:14

  网页抓取 加密html(西部网盘不能限制抓取网页源码的原因!上图框出的代码即为

)

  有网友反映无法解析西部网盘。我确认网盘现在被限制爬取网页。网站 访问目前不稳定。根据情况,我们将尝试在下一个版本中修复它。

  本来想用西部网盘写的,但是这个网盘打不开,先说彩虹云吧,一样的。

  这个文章不是教程,所以会忽略一些内容

  0、前言

  无论是网盘分析还是各种网络爬虫,你都是先获取网页的源代码,然后再提取你感兴趣的内容。但这无疑损害了一些网站的利益,所以就会出现各种限制非客户端用户抓取网页的方法。本文提到的js加密cookie就是其中之一。

  1、先看直接爬取的页面源码

  就是上面的代码,它的作用是什么,你不能直接看到,因为它是加密的。

  要执行上面的代码,eval函数是必不可少的。这是一个技巧。可以用return或者console.log等函数代替上面的eval打印出相关内容,可以看到上面代码的具体功能。

  2、 懒得改了,直接说结果:上面的代码就是在浏览器中生成一个cookie。当访问网页时,它会首先检查cookie是否存在。如果它不存在,则表示您没有通过浏览器打开它。网页,会继续得到上面的代码,如果存在则正常返回结果。这就是为什么直接通过浏览器打开网页可以正常访问网页,却无法获取网页源代码的原因!

  

  上图中框起来的代码是js动态生成的,这个cookie的__jsl_clearance可以在上面的js代码中找到!

  3、这种情况怎么解决?

  现在您了解了发生了什么,问题就很容易解决了。

  思路:既然获取网页源码需要这个cookie,那我们就自己构造这个cookie,然后拿cookie来获取源码。

  4、 问题的关键是如何构造这个cookie?

  解决此类问题的一般方法是:

  (1) 修改抓到的js代码(主要是用return代替eval函数,这里不再详细描述),使这段代码不执行eval,而是在后台执行,并返回解密后的代码片段

  (2)解密后的js代码在后台再次执行获取cookie

  (3) 携带这个cookie即可获取网页源码

  彩虹云网盘经常更改cookie加密方式,导致早期版本的“网赚网盘下载助手工具”经常解析失败。现在看来西部网盘也会自带这套,不过问题不大!

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线