Jsoupがアナログ登録を実現しました。
5408 ワード
以前は爬虫類と書いていたpythonですが、会社のパソコンにはpythonの環境がないので、仕方なくjava版を勉強しました。そこで、使いやすい道具を見つけました。個人的にはpythonのbeautiful soupと似ています。目標はウェブサイトの模擬登録を実現するので、ネット上で1つのとても良い板を発見して、特にここは記録して学びます。
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jsoup.Connection;
import org.jsoup.Connection.Method;
import org.jsoup.Connection.Response;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class Test {
public static void main(String[] args) throws IOException {
Connection con = Jsoup.connect("xxxxxxxx");
Response rs = con.execute();
System.out.println(rs.cookies());
Document d1 = Jsoup.parse(rs.body());
List et = d1.select("form");
Map datas = new HashMap<>();
for (Element e : et.get(0).getAllElements()) {
if (e.attr("name").equals("username")) {
e.attr("value", "xxxxxxxxx");//
}
if (e.attr("name").equals("password")) {
e.attr("value", "xxxxxxxxxxx"); //
}
if (e.attr("name").length() > 0) {//
datas.put(e.attr("name"), e.attr("value"));
}
}
Connection con2 = Jsoup.connect("xxxxxxxxx");
Response login = con2.ignoreContentType(true).method(Method.POST).data(datas).cookies(rs.cookies()).execute();
//System.out.println(login.body());
Map map = login.cookies();
/*for (String s : map.keySet()) {
System.out.println(s + " " + map.get(s));
}*/
}
}