首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

Python 模拟登陆有关问题,请大牛小牛们帮帮看

2013-07-01 
Python 模拟登陆问题,请大牛小牛们帮帮看import cookielib, urllib2, urllibimport mathcjcookielib.LWPC

Python 模拟登陆问题,请大牛小牛们帮帮看

import cookielib, urllib2, urllib
import math
cj=cookielib.LWPCookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
data={"account":'123', "passwd":'123'}
print 'login to get cookies'
url=r'http://localhost:8080/webDemo/login.jsp'
url_req=urllib2.Request(url, urllib.urlencode(data))
content=opener.open(url_req).read()
print(content)
cj.save('d:/somecookie')

这是login.jsp
<form action="./Login">
帐号:<input name="account"/>
密码:<input type="password" />
<input type="submit" value="提交" />
</form>

运行上面python 代码时,服务器端没接受到任务请求,不知道python代码里哪有有问题?还有不知道代码哪面哪里有控制提交表单的操作?谢谢了 Python urllib2
[解决办法]
url=r'http://localhost:8080/webDemo/login.jsp'
这个不对,应该填写action指向的路径
[解决办法]
使用Python3.3的成功案例,自行修改成2.x版本的
#!/usr/bin/python  
  
import http.cookiejar
import urllib
#登录的主页面  
hosturl = '***'#登录页面地址   
#post数据接收和处理的页面(我们要向这个页面发送我们构造的Post数据)  
posturl = '***'#提交表单的请求路径
  
#设置一个cookie处理器,它负责从服务器下载cookie到本地,并且在发送请求时带上本地的cookie  
cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
urllib.request.install_opener(opener)  
  
#打开登录主页面(他的目的是从页面下载cookie,这样我们在再送post数据时就有cookie了,否则发送不成功)  
h = urllib.request.urlopen(hosturl)  
#构造header,一般header至少要包含一下两项。这两项是从抓到的包里分析得出的。  
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1',  
           'Referer' : hosturl}  
#构造Post数据,他也是从抓大的包里分析得出的。  
postData = {
    'password':'***',
    'username':'****'
            }  


  
#需要给Post数据编码  
postData = urllib.parse.urlencode(postData)  
postData=postData.encode(encoding='utf_8', errors='strict')
request = urllib.request.Request(posturl, postData, headers)  
print(request)  
response = urllib.request.urlopen(request)  
text = response.read()  
print(text.decode("GBK"))

热点排行