Python模拟登陆[通俗易懂]

Python模拟登陆

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

模拟人人登陆

#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.你输入你的信息以后它会自己主动跳转到
http://www.renren.com/PLogin.do
那么我们是怎么知道表单提交地址呢?
1:查看站点代码
2:查看表单
提前表单的须要的数据
如:


Python模拟登陆[通俗易懂]

form中间就是整个表单

能够看箭头指向的地方:
post请求须要username,password,origURL,domain,key_id,captcha_type等。可是后面三个是不变的,不须要加上去。仅仅要前两个即可
我模拟csdn登陆的时候。五个參数。出去username和paassword以外有两个參数是动态变化的。我静态赋值,一直登不上,郁闷。记住了假设要动态获取的一定要动态获取


好,那我们来看看模拟csdn登陆的话
Python模拟登陆[通俗易懂]


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

占时我还不会,贴个我的错误代码,有大神能帮我改改,怎么动态获取这两个值
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.net/116055.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SSM框架介绍「建议收藏」

    SSM框架介绍「建议收藏」1、SSM框架简介SSM框架是SpringMVC,Spring和Mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,Controller层,Service层,DAO层四层,使用SpringMVC负责请求的转发和视图管理,Spring实现业务对象管理,Mybatis作为数据对象的持久化引擎。…

    2022年7月12日
    20
  • RabbitMQ原理分析

    RabbitMQ原理分析RabbitMQ 简介基于 AMQP 协议实现 主要作用是解耦 冗余 扩展性 增大消息入队和处理的频率变得很容易 平滑峰值 可恢复性 送达保证 ACK 机制消费者消费消息后必须返回相应的 ACK 顺序保证等 文章当中使用的 RabbitMQ 的版本是 RabbitMQ3 6 6 关键概念 Exchange 交换机启动 RabbitMQ 相关的服务 会默认创建一个不可以删除的 Excha

    2025年6月8日
    0
  • nginx配置ssl证书实现https访问_更换ssl证书

    nginx配置ssl证书实现https访问_更换ssl证书1,登录阿里云,工作台找SSL证书或者安全下找CA证书2,点击创建证书(或购买证书),创建好以后点击证书申请、3,设置配置以及域名信息,仅填写圈住内容,其他默认即可4,随后等待一会,查看状态,是否为 已签发5,为已签发时,点击下载选择下载类型6,下载后解压文件7,上传至服务器,存放位置,先找到nginx所在位置 “/nginx/conf/”找到该位置创建“cert”把刚才解压的两个文件存放至此。8,开始nginx配置内容`server { #SSL 访问端口号为 443 li

    2022年8月19日
    49
  • 1077. 皇宫看守(树形dp)[通俗易懂]

    1077. 皇宫看守(树形dp)[通俗易懂]太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫。皇宫各个宫殿的分布,呈一棵树的形状,宫殿可视为树中结点,两个宫殿之间如果存在道路直接相连,则该道路视为树中的一条边。已知,在一个宫殿镇守的守卫不仅能够观察到本宫殿的状况,还能观察到与该宫殿直接存在道路相连的其他宫殿的状况。大内保卫森严,三步一岗,五步一哨,每个宫殿都要有人全天候看守,在不同的宫殿安排看守所需的费用不同。可是陆小凤手上的经费不足,无论如何也没法在每个宫殿都安置留守侍卫。帮助陆小凤布置侍卫,在看守全部宫殿的前提下,使得花费的经费最少。

    2022年8月9日
    5
  • fseek函数用法_fwrite函数的用法

    fseek函数用法_fwrite函数的用法转载请注明出处:https://blog.csdn.net/wl_soft50/article/details/7787521每天进步一点点–>函数fseek()用法在阅读代码时,遇到了很早之前用过的fseek(),很久没有用了,有点陌生,写出来以便下次查阅。函数功能是把文件指针指向文件的开头,需要包含头文件stdio.hfseek函数名:fseek功能:重定位流上的文件…

    2022年10月21日
    0
  • mcu单片机开发_AVR单片机

    mcu单片机开发_AVR单片机关于单片机(MCU)最强科普

    2022年10月8日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号