知乎登陆脚本

改脚本模拟了用浏览器登录知乎

首先浏览器再申请打开网页(访问服务器时)会向服务器发送get post请求,主要是以报文的形式传输,首先看看浏览器的工作过程

1 在打开知乎时浏览器发送到报文是

2 在登陆时

填写好信息后发送的是_xsrf,password,remember_me,email所以只要用脚本带为发送这些即可

脚本部分:

 在python用urllib包里的模块来提供一系列用于操作url的功能,这次主要用到request和parse模块

1 其中发送的一个参数_xsrf是首次打开知乎发送给浏览器的,所以首先要截取这个参数

用urllib.request的urlopen(url,data)方法(opener.open()一样)发送get,返回http响应的对象,可以用read()读出来最好加上decode(‘utf-8’)以免出错

2 读取出来html之后要在这么多的字符串中寻找_xsrf,可以用正则表达式

python中和正则表达式相关的包在re中,其中的findall(‘表达式’,str)就可以在str中找到与之匹配的字符串re.findall('name\=\"_xsrf\"\s+value\=\"(\w*)\"',data)并会返回

小括号中的内容

3 新建一个opener用来添加header用来伪装浏览器和处理cookie(在包 http.cookiejar中)

有了cookie就能实现自动登录,接下来如果继续访问,直接采用opener.open()就可以用保存的cookie打开

4 post的data数据(字典可以)要通过parse.urlencode()转化为bytes格式才能传输,记得加encode(‘utf-8’)不然报错

最后就登录成功了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值