前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python模拟登陆[通俗易懂]

Python模拟登陆[通俗易懂]

作者头像
全栈程序员站长
发布2022-07-08 17:42:41
1.1K0
发布2022-07-08 17:42:41
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是全栈君。

模拟人人登陆

代码语言:javascript
复制
#encoding=utf-8
import urllib2
import urllib
import cookielib
def renrenBrower(url,user,password):
    #登陆页面,能够通过抓包工具分析获得,如fiddler。wireshark
    login_page = "http://www.renren.com/PLogin.do"
    try:
        #获得一个cookieJar实例
        cj = cookielib.CookieJar()
        #cookieJar作为參数,获得一个opener的实例
        opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
        #伪装成一个正常的浏览器,避免有些webserver拒绝訪问。        opener.addheaders = [('User-agent','Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0')]        #生成Post数据。含有登陆username密码。        data = urllib.urlencode({"email":user,"password":password})        #以post的方法訪问登陆页面,訪问之后cookieJar会自定保存cookie        opener.open(login_page,data)        #以带cookie的方式訪问页面        op=opener.open(url)        #读取页面源代码        data= op.read()        return data    except Exception,e:        print "aaaa"#訪问某用户的个人主页,事实上这已经实现了人人网的签到功能。http://blog.chinaunix.net/uid-25979788-id-3481639.htmlprint renrenBrower("http://www.renren.com/home","1574038203@qq.com","123456")

分析下:

模拟登陆的时候是post请求。提交表单的地址和人人界面登陆地址是不一样的,实际是人人界面的登陆地址。也就是wwww.renren.cm.你输入你的信息以后它会自己主动跳转到

代码语言:javascript
复制
http://www.renren.com/PLogin.do
代码语言:javascript
复制
那么我们是怎么知道表单提交地址呢?
代码语言:javascript
复制
1:查看站点代码
代码语言:javascript
复制
2:查看表单
代码语言:javascript
复制
提前表单的须要的数据
代码语言:javascript
复制
如:
Python模拟登陆[通俗易懂]
Python模拟登陆[通俗易懂]

form中间就是整个表单

能够看箭头指向的地方:

post请求须要username,password,origURL,domain,key_id,captcha_type等。可是后面三个是不变的,不须要加上去。仅仅要前两个即可

我模拟csdn登陆的时候。五个參数。出去username和paassword以外有两个參数是动态变化的。我静态赋值,一直登不上,郁闷。记住了假设要动态获取的一定要动态获取

好,那我们来看看模拟csdn登陆的话

Python模拟登陆[通俗易懂]
Python模拟登陆[通俗易懂]

以下两个箭头指向的两个数据的value是动态变化的。所以假设要模拟登陆的话。须要动态获取这个值

占时我还不会,贴个我的错误代码,有大神能帮我改改,怎么动态获取这两个值

代码语言:javascript
复制
import urllib
import urllib2
import cookielib
 
filename = 'cookie1.txt'
#声明一个MozillaCookieJar对象实例来保存cookie。之后写入文件
cookie = cookielib.MozillaCookieJar(filename)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')]
postdata = urllib.urlencode({
            "username":"xxxxxxxx,
            "password":"xxxxxxxx",
            "lt":"LT-381024-pHXsjYjSgZ2aR9P4QrG9YQ6rneqlhg",
            "execution" : "e20s1",
            "_eventId" : "submit"  
    
        })
#登录的URL
loginUrl = 'https://passport.csdn.net/account/login 

'
#模拟登录。并把cookie保存到变量
result = opener.open(loginUrl,postdata)
#保存cookie到cookie.txt中
cookie.save(ignore_discard=True, ignore_expires=True)
#利用cookie请求訪问还有一个网址
gradeUrl = 'http://write.blog.csdn.net/postlist 

'
#请求訪问查询网址
result = opener.open(gradeUrl)
print result.read()

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116055.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 模拟人人登陆
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档