python cookielib 登陆校内

转自: http://www.cnpythoner.com/post/30.html

我今天给大家分享一个我自己用python写的自动登录 人人网的脚本,没办法就是懒!懒的输入帐号和密码,让python给我们减少工作量! 先上脚本吧,等下来讲下知识点:

#!/usr/bin/env python
#encoding=utf-8
import  sys
import  re
import  urllib2
import  urllib
import  cookielib

class  Renren( object ):
    
     def  __init__( self ):
         self . name  =  self . pwd  =  self . content  =  self . domain  = self . origURL  =   ''
         self . operate  =  '' #登录进去的操作对象 
         self . cj  =  cookielib . LWPCookieJar()
         try :  
             self . cj . revert( 'renren.coockie')  
         except  Exception , e :
             print  e
            
         self . opener  = urllib2 . build_opener( urllib2 . HTTPCookieProcessor( self . cj)) 
         urllib2 . install_opener( self . opener)
    
    
     def  setinfo( self , username , password , domain , origURL ):
         '''设置用户登录信息'''
         self . name  =  username
         self . pwd  =  password
         self . domain  =  domain
         self . origURL  =  origURL

     def  login( self ):
         '''登录人人网'''
         params  = { 'domain' : self . domain , 'origURL' : self . origURL , 'email' : self . name , 'password' : self . pwd }
         print  'login.......'
         req  =  urllib2 . Request(  
             'http://www.renren.com/PLogin.do' ,  
             urllib . urlencode( params)  
        )
        
         self . operate  =  self . opener . open( req)  

         if  self . operate . geturl()  ==  'http://www.renren.com/Home.do' :  
             print  'Logged on successfully!'
             self . cj . save( 'renren.coockie')
             self . __viewnewinfo()
         else :
             print  'Logged on error'
    
     def  __viewnewinfo( self ):
         '''查看好友的更新状态'''
         self . __caiinfo()
        
        
     def  __caiinfo( self ):
         '''采集信息'''
        
         h3patten  =  re . compile( '

(.*?)

'
) #匹配范围
         apatten  =  re . compile( ' (.+):' ) #匹配作者
         cpatten  =  re . compile( '(.+)/s') #匹配内容        
         infocontent  =  self . operate . readlines()
#        print infocontent  
         print  'friend newinfo:'  
         for  i  in  infocontent :
             content  =  h3patten . findall( i)
             if  len( content!=  0 :
                 for  m  in  content :
                     username  =  apatten . findall( m)
                     info  =  cpatten . findall( m)
                     if  len( username!= 0 :
                         print  username [ 0 ], '说:' , info [ 0 ]
                         print  '----------------------------------------------'
                     else :
                         continue
    
ren  =  Renren()
username  =  '' #你的人人网的帐号
password  =  '' #你的人人网的密码
domain  =  'renren.com' #人人网的地址
origURL  =  'http://www.renren.com/Home.do' #人人网登录以后的地址
ren . setinfo( username , password , domain , origURL)
ren . login()

主要用到了python cookielib,urllib2,urllib这3个模块,这3个模块是python做http这方面比较好的模块.

 

self . cj  =  cookielib . LWPCookieJar()

try :
     self . cj . revert( 'renren.coockie')
except  Exception , e :
     print  e 
     self . opener  = urllib2 . build_opener( urllib2 . HTTPCookieProcessor( self . cj))

urllib2 . install_opener( self . opener)

这几行是在本地建立人人网的cookies,因为人人网要验证cookies才能登录,你运行这个脚本的话,会发现在当前目录 有个程序会自动建立一个renren.cookie这个文件。

我这里renren.cookie的信息是: #LWP-Cookies-2.0 Set-Cookie3: WebOnLineNotice_244225225=1; path="/"; domain=".renren.com"; path_spec; domain_dot; expires="2010-04-11 06:59:33Z"; version=0 总结一下如果网站登录要用cookie的话,就要用到cookielib这个模块,不然你用程序登录不了网站,过断时间在写个urlib的例子,大家可以先用上面这个脚本玩玩!体会下python的乐趣!

作者:老王@python python教程 老王python,提供pythn相关的python教程和python下载,希望大家能够喜欢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python可以使用一些库来模拟登录。 你可以使用 `requests` 库来模拟发送 HTTP 请求。例如,你可以使用 `requests.post()` 方法来发送登录表单。 为了处理网站的登录验证机制,你还可以使用 `cookielib` 库来管理 Cookies。 你还可以使用第三方库,例如 `mechanicalsoup` 来自动化这个过程。 下面是一个使用 `requests` 库的登录模拟的简单示例: ``` import requests # 登录表单数据 payload = { 'username': 'my_username', 'password': 'my_password' } # 发送登录请求 r = requests.post('http://www.example.com/login', data=payload) # 检查响应是否成功 if r.status_code == 200: print('登录成功') else: print('登录失败') ``` 这只是一个简单的示例,你可能还需要更多的代码来处理特定网站的登录流程。 ### 回答2: Python模拟登录是一种通过编写Python脚本来实现自动登录网站或应用程序的过程。通常,模拟登录包含以下步骤: 首先,我们需要了解要登录的网站或应用程序的登录流程。这可能涉及到向服务器发送登录请求,包括用户名和密码等信息。 其次,我们可以使用Python的请求库(例如requests)来发送这个登录请求。我们可以通过POST方法将用户名和密码作为参数发送到服务器。 接下来,我们需要处理服务器返回的响应。如果登录成功,服务器可能会返回一个包含用户登录信息的Cookie,我们需要保存这个Cookie,以便于在后续的请求中进行验证。 最后,我们可以使用保存的Cookie来发送其他请求,这样我们就可以在登录状态下访问网站的其他页面或执行其他操作。 为了完成以上步骤,我们可以编写一个Python函数来自动化这个登录过程。这个函数可以接受用户名和密码作为参数,并返回登录成功后的Cookie。 需要注意的是,模拟登录可能违反某些网站或应用程序的使用条款。使用Python模拟登录时,我们需要确保自己遵守合适的权限和道德规范,同时保护用户的隐私和数据安全。 综上所述,Python模拟登录是一个使用Python脚本来实现自动登录网站或应用程序的过程。通过理解登录流程,并使用Python的请求库发送登录请求和处理服务器返回的响应,我们可以实现自动化登录并访问其他页面的功能。然而,在进行模拟登录时,我们需要遵守合适的规范和保护用户的隐私和数据安全。 ### 回答3: Python模拟登录是指使用Python代码模拟用户登录一个网站或应用程序。通常,网站或应用程序会要求用户提供用户名和密码来验证身份。要在Python中实现模拟登录,可以按照以下步骤进行操作: 1. 导入所需的库:首先,导入所需的库,例如requests和BeautifulSoup。Request库用于向服务器发送HTTP请求,而BeautifulSoup库用于解析HTML网页。 2. 获取登录页面:使用requests库向登录页面发送HTTP请求,获取页面的HTML内容。 3. 提取表单数据:使用BeautifulSoup库解析HTML内容,并提取登录表单中的所有字段,例如用户名和密码。 4. 创建登录请求:根据提取到的表单字段,创建一个POST请求,将用户名和密码作为参数传递给请求。 5. 发送登录请求:使用requests库发送登录请求,并获取服务器的响应。 6. 验证登录成功:根据服务器的响应,验证登录是否成功。可以检查响应中是否包含成功登录后的页面标识,或者检查响应的状态码。 7. 进一步操作:登录成功后,可以进一步操作,例如访问登录后的页面、爬取一些数据或执行其他操作。 需要注意的是,模拟登录涉及到使用他人的账号和密码,应该获得所有者的授权才能进行操作。此外,不同网站或应用程序的登录机制可能会有所不同,需要根据具体情况进行调整和修改代码。 以上是Python模拟登录的大致步骤和思路。通过使用requests和BeautifulSoup等库,可以方便地实现登录功能,并对登录后的页面进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值