+ -
当前位置:首页 → 问答吧 → python登陆的问题

python登陆的问题

时间:2010-10-16

来源:互联网

我用下面的代码没法实现,请问如何改?
#coding=utf-8  
  
import urllib,urllib2,cookielib  
import time  
  
def pop2():  
  url_login = 'http://member.paipai.com/cgi-bin/login_entry'  
  body = (
  ('u','xxxxx'),  
  ('p','xxxxx'))  
  opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))  
  #opener.addheaders = [('User-agent','Opera/10.00')]  
  urllib2.install_opener(opener)  
  req = urllib2.Request(url_login,urllib.urlencode(body))  
  u = urllib2.urlopen(req)  
  print u.read()  
if __name__ == '__main__':  
  #while True:  
  pop2()  
  #time.sleep(3) 每3秒重登陆

先谢谢了!!

作者: xghyxx   发布时间: 2010-10-16

你得首先确定一下要提交的body是否就只有用户名和密码,最好的方式就是你注册,然后在登录的同时,开启抓包工具看一下,是否post提交的数据格式就只有body部分。以前我在处理的时候,发现可能还有很多隐藏字段

作者: rong818   发布时间: 2010-10-28

这是我以前提交某个phpwind论坛的时候提交的数据,格式比较麻烦
是用wireshark抓包抓到的数据格式。
data = '-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="magicname"' + '\n' + '\n'+ '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="magicid"' + '\n' + '\n'+ '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="verify"' + '\n' + '\n' + \
'b7eb85be' + '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="atc_title"' + '\n'+ '\n' + \
'ertyry' + '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="atc_iconid"' + '\n' + '\n' + \
'0' + '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="atc_content"' + '\n' + '\n' + \
'yjuiyikuliu' + '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="atc_autourl"' + '\n' + '\n' + \
'1' + '\n' + \
'-----------------------------7d91d42da0af0'+ '\n' + \
'Content-Disposition: form-data; name="atc_usesign"' + '\n' + '\n' + \
'1' + '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="atc_convert"' + '\n' + '\n' + \
'1' + '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="atc_rvrc"' + '\n' + '\n' + \
'0' + '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="atc_enhidetype"' + '\n' + '\n' + \
'rvrc' + '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="atc_money"' + '\n' + '\n' + \
'0' + '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="atc_credittype"' + '\n' + '\n' + \
'money' + '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="atc_desc1"' + '\n' + '\n'+ '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="attachment_1"; filename=""' + '\n' + \
'Content-Type: application/octet-stream' + '\n' + '\n'+ '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="att_special1"' + '\n' + '\n' + \
'0' + '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="att_ctype1"' + '\n' + '\n' + \
'money' + '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="atc_needrvrc1"' + '\n' + '\n' + \
'0' + '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="step"' + '\n' + '\n' + \
'2' + '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="pid"' + '\n' + '\n'+ '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="action"' + '\n' + '\n' + \
'new' + '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="fid"' + '\n' + '\n' + \
'2' + '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="tid"' + '\n' + '\n'+ '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="article"' + '\n' + '\n' + \
'0' + '\n' + \
'-----------------------------7d91d42da0af0' + '\n' + \
'Content-Disposition: form-data; name="special"' + '\n' + '\n' + \
'0' + '\n' + \
'-----------------------------7d91d42da0af0--'+ '\n'


http = httplib.HTTP('10.16.62.100')

# write header
http.putrequest("POST", '/phpwind/post.php?')
http.putheader("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; InfoPath.2; MAXTHON 2.0)")
http.putheader("Referer", 'http://10.16.62.100/phpwind/post.php?fid=2')
http.putheader("Host", '10.16.62.100')
http.putheader("Cookie", cookie)
http.putheader("Content-Type", 'multipart/form-data; boundary=---------------------------7d91d42da0af0')
http.putheader("Content-Length", str(len(data)))
http.endheaders()

# write body
http.send(data)

# get response
errcode, errmsg, headers = http.getreply()

if errcode != 200:
  raise Error(errcode, errmsg, headers)
file = http.getfile()
print file.read()

作者: rong818   发布时间: 2010-10-28