JsoupはIteye自動登録を実現します.
2517 ワード
本来はJsoupがどのようにしてウェブページを読み込むフォームを見つけるために自動的に記入して提出するのですが、httpclientは無理なようです.Jsoupに変えてもいけないようです.ここはJsoupが静的なウェブサイトを実現して自動的にフォームを提出するコードです.
package gddx;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.Connection.Method;
import org.jsoup.Connection.Response;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
/**
* @author Jason.F
* Date 2016 5 20
* **/
public class IteyeLogin {
private String loginURL ="http://www.iteye.com/login";
private void login(){
//
Connection conFirst=Jsoup.connect(loginURL);
//
conFirst.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0");
Response rs=null;
try {
rs = conFirst.execute();
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}//
Document d1=Jsoup.parse(rs.body());// Dom
List<Element> et= d1.select("#login_form");// form ,
// ,cooking , map post
Map<String, String> datas=new HashMap<>();
for(Element e:et.get(0).getAllElements()){
System.out.println(e.text());
if(e.attr("name").equals("name"))
e.attr("value", "fjssharpsword");//
if(e.attr("name").equals("password"))
e.attr("value","xyz"); //
if(e.attr("name").length()>0)//
datas.put(e.attr("name"), e.attr("value"));
}
/**
* * ,post , cookie
**/
Connection conSecond=Jsoup.connect(loginURL);
conSecond.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0");
// cookie post map
Response rsLogin=null;
try {
rsLogin = conSecond.ignoreContentType(true).method(Method.POST).data(datas).cookies(rs.cookies()).execute();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// html,
System.out.println(rsLogin.body());
// cookie , , ,
Map<String, String> map=rsLogin.cookies();
for(String s:map.keySet())
System.out.println(s+" "+map.get(s));
}
public static void main(String[] args) {
IteyeLogin lession = new IteyeLogin();
lession.login();
}
}