.

Python爬虫高级之JS渗透登录新浪微

小伙伴们看到标题可能会想,我能直接自己登陆把登陆后的cookie复制下来加到自定义的请求头里面不香嘛,为什么非要用python模拟登录的过程?如果我们是长期爬取数据,比如每天早上中午和晚上定时爬取新浪,那么,这个方法对我们来讲可能就非常的不方便了,因为我们一直都在重复的做登录复制的劳动,这对我们程序员甚至是普通人来讲都是很不友好的。

所以,今天我给大家带来用python模拟登录新浪微博的过程。

一、JS渗透爬虫准备工作

在介绍代码之前,我先说一下代码中用到的库。

1.rsa(是一个非对称加密算法,需要pip安装一下)

2.Requests(可以说,只要有爬虫的地方大多数都有它)

3.base64(加密算法)python内置的

4.time(时间模块)

5.json(处理字符串的)

6.binascii(这个是处理16进制数的,可以将前面多余的显示十六进制信息的符号去掉)

1.工具介绍

然后我们用到的抓包工具,Fiddler4。这款工具,在爬虫这里来讲,尤其是涉及到了高级和js渗透,没有这个工具肯定是不行的。由于在这里我们还涉及到js渗透,所以推荐使用的浏览器是谷歌浏览器,我们的例子也是用谷歌浏览器实现的。现在,我必须先介绍一下js渗透的基本思想和方法。Js渗透,故名思意,就是利用js代码,从而分析出网页中的参数到底是怎么来的,从而模拟关键参数构造的过程,从而可以自己构造数据包,达到我们想要达到的目的。那到底如何渗透呢?我们先来了解一下我们的工具!

2.谷歌浏览器

首先,我们看第一个两个箭头所指的Elements,在元素这一栏里面,右边有一个事件,也就是EventListeners,点击这个栏目,我们可以看到click这个字段,我们点击它,会看到出现了几个栏目,这个就是我们触发调试的关键,在click中,只要我们的鼠标点击一次,就相当于出发了一个焦点,每触发一个焦点,就会触发调试,当然,这个是需要我们打断点的,至于怎么打断点,我在下面会讲到。在触发的焦点中,我们需要的是登录这个按钮的这个触发点,click,因为这个很关键,如图:

要唤出我们需要的点击事件,我们需要用如下图所示的小鼠标,点击它,然后再点击上面的登录按钮,这样,在click中就能够跳出我们想要的触发事件,如图:

Console这个模块。这个模块非常的有意思,它是我们看js内部代码的关键所在,等等我们就会演示。Source:这个模块就是用来看js代码的,这里我们点击source,然后看一下右边的栏目:

箭头从右至左分别是,调试的暂停,下一步,进入到改行代码的函数中,以及跳出函数继续执行。这个是我们调试的另一个关键的模块。我们可以发现,上面图片中的js代码根本不是人看的,当然这个不要紧,我们可以注意到,图片左下角有一个{},点击它,就可以让代码变成人可读的样子。

Network:这个是chrome自带的抓包模块,在这里面,我们可以抓到每个请求的


转载请注明:http://blog.hzbdfjk.com/sstx/7547.html