复制代码代码如下 :
import java.io.bufferedReader;
import java.io.file;
import java.io.fileoutputStream;
import java.io.ioexception;
import java.io.inputstream;
import java.io.inputStreamReader;
import java.io.outputStreamwriter;
import java.net.httpurlConnection;
import java.net.url;
java.util.scanner import;
java.util.stringtokenizer 가져 오기;
import org.jsoup.jsoup;
import org.jsoup.nodes.document;
import org.jsoup.select.elements;
공개 수업 testpost {
public static void main (String Args [])은 ioexception {
스캐너 스캐너 = 새 스캐너 (System.In);
System.out.println ( "请输入用户名 :");
문자열 user_name = scanner.next ();
System.out.println ( "请输入密码 :");
문자열 암호 = 스캐너 .next ();
testPost (user_name, password, "d : /filedown2.txt");
testjsoup ();
}
public static void testpost (String user_name, String password, string outpath)는 ioexception {
문자열 login = "";
URL URL = New URL ( "http://passport.mop.com");
httpurlconnection connection = null;
연결 = (httpurlConnection) url.openConnection (); // 建立链接
Connection.SetInstanceFolleRdirects (False);
Connection.setRequestProperty ( "Connection", "Keep-Alive");
Connection.setRequestProperty ( "사용자 에이전트",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebkit/537.36 (Gecko Like Gecko) Chrome/32.0.1700.107 Safari/537.36");
Connection.AddRequestProperty ( "Content-Type", "Application/X-www-form-urlencoded; charset = utf-8");
Connection.SetDoInput (true);
Connection.setDoOutput (true);
//connection.disconnect ();
문자열 str = connection.getheaderfield ( "위치"); // 获得重定向的 url 地址
url newurl = new URL (str);
// 문자열 쿠키 = getCookies (Connection);
httpurlconnection conn = (httpurlConnection) newurl.openConnection ();
Conn.setRequestProperty ( "CERETER", str); // 浏览器向 web 服务器表明自己是从哪个 服务器表明自己是从哪个 网页/url 获得/点击 当前请求中的网址/url
//conn.setRequestProperty("Cookie ", 쿠키); // 쿠키 :
Conn.setRequestProperty ( "Connection", "Keep-Alive");
Conn.setRequestProperty ( "사용자 에이전트",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebkit/537.36 (Gecko Like Gecko) Chrome/32.0.1700.107 Safari/537.36");
Conn.SetRequestProperty ( "Content-Type", "Application/X-www-form-urlencoded");
conn.setdoinput (true);
conn.setdooutput (true);
outputStreamWriter out = new outputStreamWriter (conn.getoutPutStream (), "UTF-8");
login = login+"user_name ="+user_name+"&"+"password ="+암호;
out.write (로그인);
out.flush ();
out.close ();
inputStream inputStream = conn.getInputStream ();
bufferedReader reader = new bufferedReader (new inputStreamReader (inputStream, "UTF-8"));
reader.close ();
// 链接到 개인 链接到
문자열 headername = null;
StringBuilder MyCookies = New StringBuilder ();
//mycookies.append(Cookies + ";");
for (int i = 1;
if (headername.equals ( "set-cookie")) {
문자열 쿠키 = conn.getheaderfield (i);
쿠키 = cookie.substring (0, 쿠키.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 ( "Referer", STR);
pconn.setRequestProperty ( "쿠키", mycookies.toString ());
pconn.connect ();
inputStream inputStream1 = pconn.getInputStream ();
// bufferedReader reader1 = new bufferedReader (new inputStreamReader (inputStream1, "utf-8"));
// String line1 = reader1.readline ();
// while (line1! = null) {
//system.out.println(line1);
// line1 = reader1.readline ();
//}
//Reader1.close ();
int chbyte = 0;
fileoutputStream fileout = new FileOutputStream (새 파일 (OUTPATH));
chbyte = inputStream1.Read ();
while (chbyte! = -1) {
fileout.write (chbyte);
chbyte = inputStream1.Read ();
}
}
개인 정적 문자열 getCookies (httpurlConnection conn) {
// TODO 자동 생성 메소드 스텁
// StringBuffer 쿠키 = New StringBuffer ();
StringBuilder 쿠키 = New StringBuilder ();
문자열 헤드 이름;
for (int i = 1;
StringTokenizer st = new StringTokenizer (HeadName, ";");
while (st.hasmoretokens ()) {
cookies.append (st.nextToken () + ";");
}
}
반환 쿠키 .tostring ();
}
private static void testjsoup ()는 ioexception {
// 解析 html 文档
파일 input = 새 파일 ( "d : /filedown2.txt");
문서 doc = jsoup.parse (입력, "UTF-8");
// (요소 Ele : doc.getElementsByClass ( "Zhnc"). select ( "ul")) {
// if (! ele.Select ( "li"). TOSTRING (). equals ( "")) {
// 문자열 text = ele.select ( "li"). text ();
// system.out.println ( "user_name은 :"+text);
//}
//}
요소 ele = doc.getElementsByClass ( "Zhnc"). select ( "ul");
if (! ele.select ( "li"). toString (). Equals ( "")) {
문자열 text = ele.select ( "li"). text ();
System.out.println ( "user_name은 :"+text);
}또 다른{
System.out.println ( "登录失败");
}
}
}