基于webkit浏览器,自动获取完整cookie的方法 -- python

来源:互联网 发布:2017年流行什么网络语? 编辑:程序博客网 时间:2024/06/06 19:30

在进行自动抓取某些比较x的网站,例如知乎,微博时,需要登录,才能进行某些操作。

例如在抓取知乎首页,使用requests,肯定是不能获取获取登录后的页面的信息。而使用selenium 中的firefox 进行操作,获取登录后的页面,依旧不能将这个页面上的信息抓取下来。


登录前
这里写图片描述


登录后
这里写图片描述


一般有如下方法来解决:

1 抓包获取cookie值

通过在网页浏览器登录网站,然后刷新网页,通过查看源码,查看发送请求的头部信息,查取cookie值,然后在程序中,将cookie赋值给发送请求的cookie参数中。requests中可以实现这一功能。

这里写图片描述

2 模拟登录

利用模拟浏览器的方式登陆,比如ghost.py, selenium等进行操作。程序中,浏览器对象获取用户名框,密码框,输入相应的值,然后点击登录,浏览器对象的一些属性就发生变化,这是可以通过浏览器对象属性返回cookie,返回的cookie可以在后面的请求中使用。

但是,这种模拟登录的方法,在遇到需要验证码登录的时候会很麻烦。

3 手动登录,返回cookie

跟方法 2 类似,同样时基于模拟浏览器的方法。使用 selenium + firefox。
在程序中,调用selenium的firefox对象,使用firefox对象打开网页,程序会调用本地(或者远程,自己定义)的firefox浏览器,并打开登录页面。此时,进行人工在此页面进行登录操作,即输入帐号,密码,验证码,点击登录。完成后,程序中的firefox对象的属性发生变化,此时,返回firefox对象的cookie值,即是我们需要的值。

0 1
原创粉丝点击