怎么利用java爬虫模拟登陆

  介绍

怎么利用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爬虫模拟登陆