复制代码代码如下:
Importer java.io.bufferedReader;
Importer java.io.file;
Importer java.io.fileOutputStream;
Importer java.io.ioException;
import java.io.inputStream;
Importer java.io.inputStreamReader;
import java.io.outputStreamWriter;
import java.net.httpurlconnection;
Importer java.net.url;
import java.util.scanner;
import java.util.stringtokenizer;
import org.jsoup.jsoup;
import org.jsoup.nodes.document;
import org.jsoup.select.elements;
classe publique TestPost {
public static void main (String args []) lève ioException {
Scanner Scanner = nouveau scanner (System.in);
System.out.println ("请输入用户名 :");
String user_name = Scanner.Next ();
System.out.println ("请输入密码 :");
String mot de passe = Scanner.Next ();
testPost (user_name, mot de passe, "d: /filedown2.txt");
testJsoup ();
}
public static void testPost (String user_name, String Motword, String Outpath) lève IOException {
String Login = "";
Url url = new URL ("http://passport.mop.com");
HttpurlConnection Connection = null;
connexion = (httpurlconnection) url.openconnection (); // 建立链接
connection.setInstanceFollowRedirects (false);
connection.setRequestProperty ("connexion", "keep-alive");
connection.setRequestProperty ("User-agent",
"Mozilla / 5.0 (Windows NT 6.1; Wow64) Applewebkit / 537.36 (Khtml, comme 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 ();
String str = connection.geTheaderField ("emplacement"); // 获得重定向的 url 地址
Url newUrl = new URL (str);
// String cookies = getcookies (connexion);
HttpurlConnection conn = (httpurlconnection) newUrl.openconnection ();
Conn.SetRequestProperty ("référer", str); // 浏览器向 web 服务器表明自己是从哪个 网页 / url 获得 / 点击 当前请求中的网址 / url
//conn.setRequestProperty("cookie ", cookies); // 发送设置 cookie :
Conn.SetRequestProperty ("Connexion", "Keep-Alive");
Conn.SetRequestProperty ("User-agent",
"Mozilla / 5.0 (Windows NT 6.1; Wow64) Applewebkit / 537.36 (Khtml, comme 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 + "&" + "mot de passe =" + mot de passe;
out.write (connexion);
out.flush ();
out.close ();
InputStream inputStream = Conn.getInputStream ();
BufferedReader Reader = new BufferedReader (new InputStreamReader (InputStream, "UTF-8"));
Reader.Close ();
// 链接到 Personnel 页面
String Headhername = NULL;
StringBuilder mycookies = new StringBuilder ();
//MyCookies.APPEND(COOKIES + ";");
for (int i = 1; (headername = conn.geThederFieldkey (i))! = null; i ++) {
if (headhername.equals ("set-cookie")) {
String cookie = Conn.geTheaderField (i);
Cookie = Cookie.Substring (0, cookie.indexof (";"));
String Cookiename = Cookie.SubString (0, cookie.indexof ("="));
String 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 ("référer", str);
pconn.setRequestProperty ("cookie", 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 (nouveau fichier (uppath));
chbyte = inputStream1.read ();
while (chbyte! = -1) {
fileout.write (chbyte);
chbyte = inputStream1.read ();
}
}
String statique privé getcookies (httpurlconnection conn) {
// Talage de méthode générée automatiquement de TODO
// StringBuffer cookies = new StringBuffer ();
StringBuilder cookies = new StringBuilder ();
Nom de chaîne;
for (int i = 1; (Headname = Conn.geTheaderField (i))! = null; i ++) {
StringTokenizer st = new StringTokenizer (nom de tête, ";");
tandis que (St.Hasmoretokens ()) {
cookies.append (St.NextToken () + ";");
}
}
retourner cookies.toString ();
}
TestJSoup () privé statique Void () lève IOException {
// 解析 html 文档
File Input = nouveau fichier ("d: /filedown2.txt");
Document Doc = JSoup.Parse (Input, "UTF-8");
// pour (élément ele: doc.getElementsByClass ("zhnc"). SELECT ("ul")) {
// if (! ele.select ("li"). toString (). equals ("")) {
// String text = ele.select ("li"). Text ();
// System.out.println ("user_name est:" + texte);
//}
//}
Elements ele = doc.getElementsByClass ("ZHNC"). SELECT ("UL");
if (! ele.select ("li"). toString (). equals ("")) {
String text = ele.select ("li"). Text ();
System.out.println ("user_name est:" + texte);
}autre{
System.out.println ("登录失败");
}
}
}