Python爬虫学习日记:模拟带有cookie的登陆
来源:互联网 发布:windows api pdf 编辑:程序博客网 时间:2024/05/29 07:51
Python爬虫学习日记:模拟登陆
#! /usr/bin/env python#coding=utf-8import urllib2,urllib,cookielibdef login(): #第一部分是通过预访问的方式,获取目标网址的cookie信息 firstGetCookieUrl='http:/www.xxx.com/login' # 获取cookiejar实例 cj = cookielib.LWPCookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) urllib2.install_opener(opener) resq=urllib2.urlopen(firstGetCookieUrl) #第二部分是从获取的cookie信息中提取需要的参数为字典 f = {} for index, Cookie in enumerate(cj): #列出cj中的phpsessid和csrf_name_cookie值 f[Cookie.name] = Cookie.value #第三部分获取用户名和密码后登录指定网址 username = raw_input("请输入用户名:") password = raw_input("请输入密码:") #拿到需要的csrf_cookie_name参数 csrf_post_name = f.get('csrf_cookie_name') data = {"username": username, "password": password, 'foward': 'null', 'csrf_test_name': csrf_post_name} #将post的数据编码 data_encodeed=urllib.urlencode(data) post_data='http://www.xxx.com/login' #post_data = raw_input('请输入网址:') #自己设置User-Agent(真实伪装,超越限制) headers ={"User-agent":"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1"} #带有请求信息请求登录目标网址 req=urllib2.Request(post_data,data_encodeed,headers) content=opener.open(req) print content.read() #linux下没有gbk编码,只有utf-8编码if __name__ == '__main__': login()
由于本次模拟登录的后台地址需要在post时的data信息中携带cookie值作为服务器的登录token校验
所以在第一部分先通过预访问的形式获取了cookie参数,并添加进入post请求的header中。
在第二三部分通过分解获得的cookie实例拿到具体的cookie参数值。并将其录入字典f中,为下一步data信息中需要的csrf_test_name参数做准备。
最后一部分是关键的登录操作。
备注:本次操作中比较麻烦的是获取cookie参数,由于cookielib初步获取的cookie实例为cookie instance格式,不太好提取(通过正则匹配应该可以,但是还没学会呢哈哈哈哈,所以曲线救国了)。查找资料后通过enumerate()将获得的cj值分解为列表格式,然后通过cookie的固定方法cookie.name,cookie.value获得具体的键对值。再将其写入至data信息中才完成了服务器端的token校验。
0 0
- Python爬虫学习日记:模拟带有cookie的登陆
- Python爬虫学习(简单的模拟登陆(一))
- Python爬虫学习(简单的模拟登陆(二))
- Python爬虫基础——利用cookie实现模拟登陆
- python爬虫 模拟登陆
- Python 爬虫模拟登陆
- python 爬虫模拟登陆
- 《python爬虫实战》:模拟登陆
- Python爬虫之模拟登陆
- Python爬虫模拟登陆豆瓣
- python爬虫模拟登陆知乎网
- Python3网络爬虫:使用Cookie-模拟登陆
- python使用cookie模拟登陆
- [python 爬虫学习]利用cookie模拟网站登录
- python爬虫学习之路(1)_ CSDN网站的模拟登陆
- 《python爬虫学习》:Cookie的使用
- 模拟登陆CSDN -- Python爬虫练习之正则表达式和cookie
- [python爬虫]模拟登陆扇贝单词
- hud题目分类
- MFC 控件背景色
- 深度学习 13. 能力提升, 一步一步的介绍如何自己构建网络和训练,利用MatConvNet(二),思路整理
- 连接oracle报错“ORA-28547:connection to server failed,probable Oracle Net admin 解决办法
- jQuery中的$(window).load()与$(document).ready()
- Python爬虫学习日记:模拟带有cookie的登陆
- 被JAVA架构师面试后的经验总结
- leetcode20. Valid Parentheses
- qq互联登录java版本
- Linux下使用Visual Studio Code
- activemq 使用?
- Android Studio出现Failed to open zip file问题的解决方法
- GameObject.instantiate 生成继承自其他的gameobject的问题
- dubbo报错