【爬虫】一道爬虫面试题

最近在群里看到老哥提到这题面试题,刚好有关js的混淆。自己撸一下思路怎么做。
http://shaoq.com:7777/exam
在这里插入图片描述
这里第一行的字除了python和题都是由css给span标签设置的style。
在这里插入图片描述

直接对这个地址进行访问的话,返回的内容只是设置了5.5秒后进行了一次地址的重定向。并对cookie进行了一次设置
在这里插入图片描述
在这里插入图片描述
所以可以通过session保存cookie后重复访问这一链接,但是做到这里会发现设置cookie后还是返回原始内容。那就按照抓包的流程完整的看一次整个请求返回了什么。因此我们在访问后对图片也进行一次虚拟的加载。看看会返回什么。
在这里插入图片描述
当我用requests一步步下载之后,最后返回的还是没有变,这就让我很烦恼了。所以会不会因为我直接使用requests加载的速度过慢,超过了服务器设置的一个时间阈值,在这里我使用gevent进行并发处理图片的访问,结果果然返回了js内容。
在这里插入图片描述
返回的js也不是太复杂,一个匿名函数自动添加document执行。(排版还是很人性化的)

先不看function的内容,我们只需要重点关注自动执行的那一部分是什么流程。
画框的这一部分也就是动态的生成style标签。在js的尾部会有jE_这个函数的执行,我们在一行行去看之前可以现在浏览器里看看究竟这些东西是什么值。
在这里插入图片描述
在这里插入图片描述
将匿名函数参数uH_的值设为document,将函数体复制到console里,我们看看里面的函数结果和变量值是多少。jE_方法中的变量vz_,ti_的结果很明显就是内容和顺序索引的值。
在这里插入图片描述
我这种js很糟糕的人就会直接用正则去匹配值然后生成字符串和对应的顺序数组得到结果了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值