- 论坛徽章:
- 0
|
本帖最后由 feeLinglyn 于 2012-11-11 18:20 编辑
由于一个prp 让我这个之前没有学过python的需要完成以下内容(用的是python2.7)
批量注册某网站
问题1. 我们先以某个没验证码的网站
import re;
import cookielib;
import urllib;
import urllib2;
def checkAllCookiesExist(cookieNameList, cookieJar) :
cookiesDict = {};
for eachCookieName in cookieNameList :
cookiesDict[eachCookieName] = False;
allCookieFound = True;
for cookie in cookieJar :
if(cookie.name in cookiesDict) :
cookiesDict[cookie.name] = True;
for eachCookie in cookiesDict.keys() :
if(not cookiesDict[eachCookie]) :
allCookieFound = False;
break;
return allCookieFound;
def emulateLoginHuanxiao():
cj = cookielib.CookieJar();
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj));
urllib2.install_opener(opener);
print " emulate login huanxiao";
staticpage = "http://huanxiao.cc/mall/index.php";
baiduMainLoginUrl = "http://huanxiao.cc/mall/index.php?app=member&act=register&siteId=1";
postDict = {
'user_name':"prpdiyicitest3",
'password':"123456",
'password_confirm':"123456",
'email':"qqqqqq@qq.com",
'agree':"1",
'ret_url':staticpage
};
postData = urllib.urlencode(postDict);
print "postData=",postData;
req = urllib2.Request(baiduMainLoginUrl, postData);
req.add_header('Content-Type', "application/x-www-form-urlencoded");
cookiesToCheck = ['ECM_ID'];
loginHuanxiaoOK = checkAllCookiesExist(cookiesToCheck, cj);
if(loginHuanxiaoOK):
print "+++ Emulate login is OK, ^_^";
else:
print "--- Failed to emulate login !"
if __name__=="__main__":
emulateLoginHuanxiao();
有个小问题 就是加入我现在要注册那个网站,
其中有个变量通过IE的F12得到的分析网页是
ret_url=http%253A%252F%252Fhuanxiao.cc%252Fmall%252Findex.php
但是如果是按照一般的url encode 和decode他每个字符前面都多了个25
就是我认为理论上会得到这个 但是却得到上面那个带25的……
http%3A%2F%2Fhuanxiao.cc%2Fmall%2Findex.php
假设我先设staticpage = "http://huanxiao.cc/mall/index.php";
postData里有 'ret_url':staticpage,
如果直接后面用url里 postData=urllib.urlencode(postData);
得到的ret_url是http%3A%2F%2Fhuanxiao.cc%2Fmall%2Findex.php
十分感谢啊~ |
|