介绍
怎么利用java爬虫模拟登陆?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
一、使用工具:Jsoup
Jsoup是一款java的HTML解析器,可直接解析某个URL地址,HTML文本内容。它提供了一套非常省力的API,可通过DOM, CSS以及类似于jQuery的操作方法来取出和操作数据。
二,实现java爬虫模拟登陆
<强> 1,确定想要爬取的URL 强>
import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.Map.Entry; import java.util.Set; import org.jsoup.Connection; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; public class  SplitTable { public 才能;static  void main (String [], args), throws IOException { ,,,//想要爬取的url ,,,String url =癶ttp://jwcnew.nefu.edu.cn/dblydx_jsxsd/xskb/xskb_list.do? Ves632DSdyV=NEW_XSD_PYGL"; ,,,String username =,““ ,,,String password =,““ ,,,String sessionId =, getSessionInfo(用户名、密码); ,,,spiderWebSite (sessionId、url); 以前,,}><强> 2,获取sessionId 强>
private static String getSessionInfo (String  String 用户名,密码) throws IOException {<强> 3,登录网站,返回sessionId信息强>
Connection.Response res =, Jsoup.connect (http://jwcnew.nefu.edu.cn/dblydx_jsxsd/xk/LoginToXk)<强> 4,获得sessionId 强>
, String sessionId =, res.cookie (“JSESSIONID"); ,,,System.out.println (sessionId); ,,,return sessionId; 以前,,}><强> 5,爬取内容强>
private static void spiderWebSite (String sessionId String url), throws IOException { ,,,//爬取 ,,,Document doc =, Jsoup.connect (url) .cookie (“JSESSIONID",, sessionId) .timeout (10000) . get (); ,,,Element table =, doc.getElementById (“kbtable"); ,,,//System.out.println(表); ,,,BufferedWriter bw =new BufferedWriter (new OutputStreamWriter (new FileOutputStream (“F:/table.html"))); ,,,bw.write (new 字符串(table.toString () .getBytes ())); ,,,bw.flush (); ,,,bw.close (); ,,} }实例代码扩展:
import java.io.IOException; import java.util.HashMap; import 并不知道; 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; public class  LoginDemo { public 才能;static  void main (String [], args), throws Exception { ,,,LoginDemo LoginDemo =, new LoginDemo (); ,,,loginDemo.login (“16 xxx20xxx",,“16 xxx20xxx");//,用户名,和密码 ,,} ,/* * ,,*,模拟登陆座位系统 ,,*,@param 用户名 *,,,,,,,,用户名 ,,*,@param pwd *,,,,,,,,密码 ,,* ,,*,* */public 才能;void 登录(用户名、String String pwd), throws Exception { ,,,//,第一次请求 ,,,Connection con =Jsoup ,,,,,,,.connect (“http://lib???.?????????.aspx");//,获取连接 ,,,con.header (“User-Agent", ,,,,,,,,Mozilla/5.0, (Windows NT 6.1;, WOW64;,房车:29.0),壁虎/20100101,Firefox/29.0“);//,配置模拟浏览器 ,,,Response rs =, con.execute();//,获取响应 ,,,Document d1 =, Jsoup.parse (rs.body());//,转换为Dom树 ,,,List, et =, d1.select (“# form1");//,获取形式表单,可以通过查看页面源码代码得知 ,,,//,获取,烹饪和表单属性,下面地图存放文章时的数据 ,,,Map<字符串,String>, datas =, new HashMap<在(); ,,,for (Element e : et.get (0) .getAllElements ()), { ,,,,,//System.out.println (e.attr (“name") +“- - - - -小\ n"); null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null 怎么利用java爬虫模拟登陆