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

在进行自动抓取某些比较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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值