zoukankan      html  css  js  c++  java
  • Jsoup 解析html

    Jsoup解析线上html文件 

     1 /**
     2      * 根据url地址获取元素
     3      * 
     4      * @param url
     5      *            要爬虫的url地址
     6      * @return 返回需要继续的元素值
     7      * 
     8      *         这里解析的为的 xy 网页上的应用信息 内容 ul 标签中
     9      * 
    10      */
    11     public Elements getHtmlRescoureByurl(String url) {
    12         Connection con = Jsoup.connect(url).timeout(5000); 
    13         try {
    14             con.header("Connection", "keep-alive");
    15             con.header("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
    16             con.header("User-Agent",
    17                     "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36");
    18 
    19             Document doc = con.get();
    20             Elements divs = doc.getElementsByTag("div");
    21 
    22             Element div = null;
    23             for (Element element : divs) {
    24                 if (element.attr("class").equals("seventyfive")) {
    25                     div = element;
    26                     break;
    27                 }
    28             }
    29             if (div != null) {
    30                 Elements uls = div.getElementsByTag("ul");
    31                 if (uls.size() > 0) {
    32                     Element ul = uls.get(0);
    33                     return ul.getElementsByTag("li");
    34                 }
    35             }
    36         } catch (IOException e) {
    37             System.out.println(e.getMessage());
    38         }
    39         return null;
    40     }
    41 
    42     
    43     /**
    44      *    解析返回的xml内容
    45      * @param lis
    46      * @return
    47      */
    48     public List<Object[]> parElement(Elements lis , int type) {
    49         List<Object[]> list = new ArrayList<Object[]>();
    50         int i = 0;
    51         String defaulttime = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
    52         
    53         for (Element li : lis) {
    54             String icon = li.getElementsByAttributeValue("class", "xy_img").attr("src"); // icon图标
    55             Elements als = li.getElementsByTag("a");
    56             String appname = als.get(2).text();                                             // appname
    57             String downloaded = li.getElementsByAttributeValue("class","edloaded").text();  // 下载次数
    58             String app_size = li.getElementById("app_size_" + i).text();
    59             String size = app_size.split("\|").length > 0? app_size.split("\|")[0]:"";                                         // 软件大小
    60             String updatetime = app_size.split("\|").length > 1? app_size.split("\|")[1]:defaulttime;                                     // 更新日期
    61             String itunesid = als.get(3).attr("id");                                         // itunesid
    62             String version = als.get(3).attr("version");                                     // 版本号
    63             String bundleid = als.get(3).attr("bid");                                         // bundleid
    64             String ipaurl = als.get(3).attr("resurl");
    65             ipaurl = getFromBase64(ipaurl);                                                    //  ipa下载地址
    66             i++;
    67             
    68             //   ipa 下载地址为空   appname太长  更时间为空
    69             //  参数顺序   itunesid,appname,icon,version,bundleid,size,downloaded,ipaurl,updatetime  
    70             Object[] params = new Object[]{itunesid,appname,icon,version,bundleid,size,downloaded,type,ipaurl,updatetime};
    71             list.add(params);
    72         }
    73         return list;
    74     }
    75 
    76 
    77 // post 请求
    78   
    79     public void testJsop(){
    80         try {
    81             Connection conn = Jsoup.connect("https://passport.jd.com/new/login.aspx");
    82             conn.data("loginname","test1");
    83             conn.data("loginpwd","test1");
    84             Document doc = conn.post(); 
             // Document doc = con.ignoreContentType(true).get();
    85 System.out.println(doc); 86 } catch (IOException e) { 87 e.printStackTrace(); 88 } 89 }

    需要jar jsoup

  • 相关阅读:
    Linux下几种文件传输命令 sz rz sftp scp
    jqGrid subGrid配置 如何首次加载动态展开所有的子表格
    MySQL使用规范
    Navicat连接MySQL报错2059
    微信小程序
    完美解决 ios10 及以上 Safari 无法禁止缩放的问题
    html5利用getObjectURL获取图片路径上传图片
    Vue的单页应用中如何引用单独的样式文件
    用JS添加和删除class类名
    APP中的 H5和原生页面如何分辨、何时使用
  • 原文地址:https://www.cnblogs.com/zfy0098/p/5157338.html
Copyright © 2011-2022 走看看