怎么脑子里出现的是狮子座的八月份的前奏......本月主题处半夜凉初透女座了
九月的开始解决了不少困惑已久的技术问题,师兄的面试理论又让我有些迷失,不管怎样,还是要坚持的,自己还是对web技术比较感兴趣。
各公司和单位校园招聘也将在这个月拉开序幕,找工作的各位加油了,好好准备,wish everyone good luck。
最后记录一下,首先是页面上用JavaScript实现自动登录
function log_submit(){
var User = document.mailForm.mail_name.value;
var ProNo = document.mailForm.mailSelect.value;
var mail_action = ProNo.split(";");
if(mail_action.length > 1)
{
if(mail_action[1]=="suffix")
User += "@"+mail_action[2];
else
eval("document.mailForm."+mail_action[1]+".value = '"+mail_action[2]+"';");
}
var Passwd = document.mailForm.mail_password.value;
var Formobj = document.mailForm;
function checkUserPass(){
if (User == ""){
alert("请填写用户名");
document.mailForm.mail_name.focus();
return false;
}
else if (Passwd == ""){
alert("请填写密码");
document.mailForm.mail_password.focus();
return false;
}
else {
return true;
}
}
if (checkUserPass()){
document.mailForm.action = mail_action[0];
document.mailForm.u.value = User;
document.mailForm.user.value = User;
document.mailForm.LoginName.value = User;
document.mailForm.username.value = User;
document.mailForm.UserName.value = User;
document.mailForm.login_name.value = User;
document.mailForm.login.value = User;
document.mailForm.email.value = User;
document.mailForm.psw.value = Passwd;
document.mailForm.pass.value = Passwd;
document.mailForm.passwd.value = Passwd;
document.mailForm.password.value = Passwd;
document.mailForm.Password.value = Passwd;
document.mailForm.login_password.value = Passwd;
document.mailForm.submit();
document.mailForm.mail_password.value = "";
}
return false;
}
接下来是灌水的机制,hoho
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}
首先需要提交登录表单,填写包括邮箱和密码
WebConversation browser = new WebConversation();
WebRequest
request = new PostMethodWebRequest("http://login.renren.com/Login.do");
try
{
HttpUnitOptions.setExceptionsThrownOnScriptError(false);
HttpUnitOptions.setLoggingHttpHeaders(true);
WebResponse response = browser.getResponse(request);
WebForm form = response.getForms()[0];
form.setParameter("email","laixingrong@163.com");
form.setParameter("password","");//此处需要填写真实密码
response = form.submit();
关键是先在Firefox下安装插件Firebug来进行请求和响应网络包截获,同时分析目标地址和POST参数,一般POST参数除了用户需要填写的可见input如textbox和textarea等之外,还包括隐性的hidden
input,这些都是提交的时候需要的,而且一般都是存储了服务器返回的信息。(注意某些hidden input没有value,故此时直接设置post参数为””,否则运行时将出错)
org.w3c.dom.NamedNodeMap mp =
response.getElementsWithName("cc")[0].getNode().getAttributes();
String cc = mp.getNamedItem("value").getNodeValue();
request = new PostMethodWebRequest("http://renren.com/gossip.do");
request.setParameter("cc", cc)
同时还可能遇到的就是维持会话问题,如发送Cookie信息等,可以取出后进行赋值添加到请求头中。
String[] cookies = browser.getCookieNames();
String totalCookies ="";
for(String str:cookies)
{
if(!totalCookies.equals(new String("")))
{
totalCookies+="; ";
}
totalCookies+=str+"=";
totalCookies+=browser.getCookieValue(str);
}
request=new
GetMethodWebRequest("http://renren.com/profile.do?portal=homeFootprint&id=34720877");
String headerName="Cookie";
String headerValue=totalCookies;
request.setHeaderField(headerName,
headerValue);
最后通过查看截取的包再设置需要的请求头:
request.setHeaderField("Referer", "http://renren.com/profile.do?portal=profileFootprint&id=34720877");
request.setHeaderField("Content-Type", "application/x-www-form-urlencoded;
charset=UTF-8");
牛X!