24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2135  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

yinketao

新虫 (小有名气)

[求助] python urllib2 求助阿

我想登录一个网站可是总是不对
#!/usr/bin/env python
#encoding=utf-8
import urllib2,cookielib,urllib

cookie=cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
urllib2.install_opener(opener)
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
values = {'name' : 'Michael Foord','location' : 'Northampton','language' : 'Python' }
headers = { 'User-Agent' : user_agent }

postdata=urllib.urlencode({"username":"2010932054","password":"6472103"})
#postdata=urllib.urlencode({'TB_USERID':'2010932054','TB_USERMM':'6472103'})
login_respo= urllib2.Request('http://gim.jlu.edu.cn/login.jsp',postdata,headers)
#login_respo= urllib2.Request('http://tax.jlu.edu.cn/Index.aspx',postdata,headers)
login_response=urllib2.urlopen(login_resaa=login_response.read()
aa=login_response.read()
print aa
可是一直没显示登录进去的网页。。。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军


jjdg(金币+1): 感谢支持 2011-12-28 02:12:45
引用回帖:
4楼: Originally posted by yinketao at 2011-12-27 10:29:43:
为什么是check.asp阿,比如说这个http://tax.jlu.edu.cn/应该改成什么阿

看login.jsp的html代码,提交的form是check.jsp,是提交地址
你这个网址我打不开,你把html代码贴下
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
5楼2011-12-27 16:21:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖


感谢参与,应助指数 +1
jjdg(金币+1): 感谢支持 2011-12-27 17:01:33
yinketao(金币+10): ★★★★★最佳答案 还是谢谢你了 2011-12-28 10:37:37
urlopen并没有login_resaa这个参数字段,改了就好啦
另外,最好加timeout,免得server出问题当机
调试通过代码:
CODE:
#!/usr/bin/env python
#encoding=utf-8
import urllib2,cookielib,urllib

cookie = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
urllib2.install_opener(opener)
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
values = {'name' : 'Michael Foord','location' : 'Northampton','language' : 'Python' }
headers = { 'User-Agent' : user_agent }

postdata = urllib.urlencode({"username":"2010932054","password":"6472103"})
#postdata=urllib.urlencode({'TB_USERID':'2010932054','TB_USERMM':'6472103'})
login_respo = urllib2.Request('http://gim.jlu.edu.cn/login.jsp',postdata,headers)
#login_respo = urllib2.Request('http://tax.jlu.edu.cn/Index.aspx',postdata,headers)

# 1. no login_resaa keyword argument
# 2. add timeout argument to make code more robust
login_response = urllib2.urlopen(login_respo,timeout=10)
aa=login_response.read()
print aa

输出:
CODE:
>>> ================================ RESTART ================================
>>>














研究生院管理系统









  


  

   
   

  

   

      

   

   

      

   

   

      

   

   

      

   

   

      

   

   

      

   

  


        



        


         
  

         

   

       

       

       

       
用户名

      

密 码



              


      



              


          提示:研究生教育管理信息系统的密码与学生邮件系统的密码是相同的,在任何一个系统里改密码,则另一个系统的密码也会相应改变。

         


        


      




  






系统维护:吉林大学研究生院 技术支持:网络中心  访问次数:

   










>>>  

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2011-12-27 06:02:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★ ★
yinketao(金币+10): ★★★很有帮助 解答完全部给你 2011-12-27 16:06:29
jjdg(金币+1): 感谢支持 2011-12-27 17:02:05
xzhdty(金币+2): 欢迎常来程序语言 2011-12-28 07:20:10
我刚看了一下,你提交了账号密码应该是想登陆的,那就需要提交的页面地址,是check.jsp,不是login.jsp了
修改后登陆成功了

代码
CODE:
#!/usr/bin/env python
#encoding=utf-8
import urllib2,cookielib,urllib

# --------------
# cookie
cookie = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
urllib2.install_opener(opener)

# --------------
# make headers
headers = { 'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' }
postdata = urllib.urlencode({"username":"2010932054","password":"6472103"})
# url is check.jsp, not login.jsp any more
login_respo = urllib2.Request('http://gim.jlu.edu.cn/check.jsp',data=postdata,headers=headers)

# --------------
# get response
# 1. no login_resaa keyword argument
# 2. add timeout argument to make code more robust
login_response = urllib2.urlopen(login_respo,timeout=10)
aa = login_response.read()
print aa

结果:
CODE:
>>> ================================ RESTART ================================
>>>




































学生空间









"倡议书"


















  

   

  

  

   

  

  

   

  

学号:2010932054 姓名:殷克涛 邮箱:yinkt10@mails.jlu.edu.cn


       


                吉林大学 |

                图书馆 |

                牡丹园 |

                校园视频 |

                博物馆 |

                吉大图库 |

                就业指导 |

                科学研究 |

                吉大新闻 |

                安全退出

       


       




  

   

   

  





       

       

       

       

       



       

       


       




       


       

       


       

       


       

       




  

   

  



联系电话: 综合处 5166255 培养处 5166340 管理处 5166341 学位办 5166342

技术维护: 吉林大学网络中心 系统如有问题,请在信息反馈中将您的宝贵意见提交到系统维护部门

       






页面执行时间:37 ms



>>>

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
3楼2011-12-27 06:12:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yinketao

新虫 (小有名气)

引用回帖:
: Originally posted by libralibra at 2011-12-27 06:12:45:
我刚看了一下,你提交了账号密码应该是想登陆的,那就需要提交的页面地址,是check.jsp,不是login.jsp了
修改后登陆成功了

代码
[code]#!/usr/bin/env python
#encoding=utf-8
import urllib2,cookielib,urll ...

为什么是check.asp阿,比如说这个http://tax.jlu.edu.cn/应该改成什么阿
4楼2011-12-27 10:29:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见