複製代碼代碼如下:
導入java.io..bufferedreader;
導入java.io.file;
導入java.io.io.fileoutputstream;
導入java.io.ioexception;
導入java.io.inputstream;
導入java.io.io.inputStreamReader;
導入java.io.OutputStreamWriter;
導入java.net.httpurlConnection;
導入java.net.url;
導入Java.util.Scanner;
導入Java.util.StringTokenizer;
導入org.jsoup.jsoup;
導入org.jsoup.nodes.document;
導入org.jsoup.select.elements;
公共類測試桿{
公共靜態void main(string args [])拋出ioexception {
掃描儀掃描儀=新掃描儀(System.in);
system.out.println(“:”);
字符串user_name = scanner.next();
system.out.println(“:”);
字符串密碼= scanner.next();
testpost(user_name,密碼,“ d:/filedown2.txt”);
testjsoup();
}
public static void testpost(字符串user_name,字符串密碼,字符串孔徑)拋出ioexception {
字符串登錄=“”;
url url = new URL(“ http://passport.mop.com”);
httpurlconnection連接= null;
連接=(httpurlConnection)url.openconnection(); //建立鏈接
Connection.setInstanceFollocredirects(false);
Connection.setRequestProperty(“連接”,“ keep-alive”);
Connection.setRequestProperty(“用戶代理”,
“ Mozilla/5.0(Windows NT 6.1; WOW64)AppleWebkit/537.36(Khtml,像Gecko一樣)Chrome/32.0.1700.107 Safari/537.36);
connection.addrequestProperty(“ content-type”,“應用程序/x-www-form-urlencoded; charset = utf-8”);
Connection.setDoInput(true);
connection.setDoOutput(true);
//connection.disconnect();
string str = connection.getheaderfield(“位置”); //獲得重定向的url地址
url newurl = new url(str);
//字符串cookies = getCookies(連接);
httpurlconnection conn =(httpurlConnection)newurl.openconnection();
conn.setRequestProperty(“推薦人”,str); //瀏覽器向web服務器表明自己是從哪個/url獲得/點擊/url/url
//conn.setrequestproperty(“cookie”,cookie); //發送設置cookie::
conn.setRequestProperty(“連接”,“ keep-alive”);
conn.setRequestProperty(“用戶代理”,
“ Mozilla/5.0(Windows NT 6.1; WOW64)AppleWebkit/537.36(Khtml,像Gecko一樣)Chrome/32.0.1700.107 Safari/537.36);
conn.setRequestProperty(“ content-type”,“應用程序/x-www-form-urlencoded”);
conn.setDoInput(true);
conn.setDoOutput(true);
outputStreamWriter out = new UppotStreamWriter(conn.getOutputStream(),“ utf-8”);
登錄=登錄+“ user_name =”+user_name+“&”+“ password =”+密碼;
out.write(login);
out.flush();
out.close();
InputStream InputStream = Conn.getInputStream();
BufferedReader Reader = new BufferedReader(new InputStreamReader(InputStream,“ UTF-8”));
reader.close();
//個人頁面
字符串標題= null;
StringBuilder mycookies = new StringBuilder();
//mycookies.append(cookies +“;”);
for(int i = 1;(headername = conn.getheaderfieldkey(i))!= null; i ++){
if(headername.equals(“ set-cookie”)){
字符串cookie = conn.getheaderfield(i);
cookie = cookie.substring(0,cookie.indexof(“;”));
字符串cookiename = cookie.substring(0,cookie.indexof(“ =”));
字符串cookievalue = cookie.substring(cookie.indexof(“ =”) + 1,cookie.length());
mycookies.append(cookiename +“ =”);
mycookies.append(cookievalue +“;”);
}
}
url purl = new url(“ http://passport.mop.com/personal”);
httpurlconnection pconn =(httpurlConnection)purl.openconnection();
pconn.setRequestProperty(“推薦人”,str);
pconn.setRequestProperty(“ cookie”,mycookies.tostring());
pconn.connect();
InputStream InputStream1 = pconn.getInputStream();
// BufferedReader Reader1 = new BufferedReader(new InputStreamReader(InputStream1,“ utf-8”)));
//字符串line1 = reader1.readline();
// while(line1!= null){
//system.out.println(line1);
// line1 = reader1.readline();
//}
//reader1.close();
int chbyte = 0;
fileOutputStream fileout = new fileOutputStream(new File(eTPATH));
chbyte = inputstream1.read();
while(chbyte!= -1){
fileout.write(chbyte);
chbyte = inputstream1.read();
}
}
私有靜態字符串getCookies(httpurlconnection conn){
// TODO自動生成的方法存根
// StringBuffer cookies = new StringBuffer();
StringBuilder cookies = new StringBuilder();
字符串頭名;
for(int i = 1;(headName = conn.getheaderfield(i))!= null; i ++){
StringTokenizer st = new StringTokenizer(頭名,“;”);
而(St.Hasmoretokens()){
cookies.append(st.nexttoken() +“;”);
}
}
返回cookies.tostring();
}
私有靜態void testjsoup()拋出ioexception {
//解析html文檔
文件輸入=新文件(“ d:/filedown2.txt”);
文檔doc = jsoup.parse(輸入,“ utf-8”);
// for(eleme ele:doc.getelementsbyclass(“ zhnc”)。選擇(“ ul”)){
// if(!ele.select(“ li”)。
//字符串text = ele.Select(“ li”)。text();
// system.out.println(“ user_name is:”+text);
//}
//}
Elements Ele = Doc.GetElementsByClass(“ ZHNC”)。選擇(“ UL”);
如果(!ele.Select(“ li”)。
字符串text = ele.Select(“ li”)。text();
system.out.println(“ user_name is:”+text);
}別的{
system.out.println(“登錄失敗”);
}
}
}