zoukankan      html  css  js  c++  java
  • jsoup

    Jsoup是一个非常好的解析网页的包,用java开发的,提供了类似DOM,CSS选择器的方式来查找和提取文档中的内容。

    1.下载地址

    中文文档资料:http://www.open-open.com/jsoup/

    比较好的文档:http://www.ostools.net/apidocs/apidoc?api=jsoup-1.6.3

     2.maven配置实例

    <dependency>
      <!-- jsoup HTML parser library @ http://jsoup.org/ -->
      <groupId>org.jsoup</groupId>
      <artifactId>jsoup</artifactId>
      <version>1.8.3</version>
    </dependency>

    简单测试

    package com.javen.Jsoup;
    
    import java.io.IOException;
    
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;
    
    public class JsoupTest {
        static String url="http://www.cnblogs.com/zyw-205520/archive/2012/12/20/2826402.html";
        /**
         * @param args
         * @throws Exception
         */
        public static void main(String[] args) throws Exception {
            
            // TODO Auto-generated method stub
            BolgBody();
            //test();
            //Blog();
            /*
             * Document doc = Jsoup.connect("http://www.oschina.net/")
             * .data("query", "Java") // 请求参数 .userAgent("I ’ m jsoup") // 设置
             * User-Agent .cookie("auth", "token") // 设置 cookie .timeout(3000) //
             * 设置连接超时时间 .post();
             */// 使用 POST 方法访问 URL
    
            /*
             * // 从文件中加载 HTML 文档 File input = new File("D:/test.html"); Document doc
             * = Jsoup.parse(input,"UTF-8","http://www.oschina.net/");
             */
        }
    
        /**
         * 获取指定HTML 文档指定的body
         * @throws IOException
         */
        private static void BolgBody() throws IOException {
            // 直接从字符串中输入 HTML 文档
            String html = "<html><head><title> 开源中国社区 </title></head>"
                    + "<body><p> 这里是 jsoup 项目的相关文章 </p></body></html>";
            Document doc = Jsoup.parse(html);
            System.out.println(doc.body());
            
            
            // 从 URL 直接加载 HTML 文档
            Document doc2 = Jsoup.connect(url).get();
            String title = doc2.body().toString();
            System.out.println(title);
        }
    
        /**
         * 获取博客上的文章标题和链接
         */
        public static void article() {
            Document doc;
            try {
                doc = Jsoup.connect("http://www.cnblogs.com/zyw-205520/").get();
                Elements ListDiv = doc.getElementsByAttributeValue("class","postTitle");
                for (Element element :ListDiv) {
                    Elements links = element.getElementsByTag("a");
                    for (Element link : links) {
                        String linkHref = link.attr("href");
                        String linkText = link.text().trim();
                        System.out.println(linkHref);
                        System.out.println(linkText);
                    }
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
        /**
         * 获取指定博客文章的内容
         */
        public static void Blog() {
            Document doc;
            try {
                doc = Jsoup.connect("http://www.cnblogs.com/zyw-205520/archive/2012/12/20/2826402.html").get();
                Elements ListDiv = doc.getElementsByAttributeValue("class","postBody");
                for (Element element :ListDiv) {
                    System.out.println(element.html());
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
    
    }
  • 相关阅读:
    flask插件系列之flask_cors跨域请求
    【电脑蓝屏记】
    .net 定时启动任务
    c# winform+wcf代理上网的处理
    WCF
    Sql Over的用法
    【转】c#的逆向工程-IL指令集
    【随记】代码混编的重要性
    【转】android学习日记01--综述
    c#获取网页代码、数据、资源
  • 原文地址:https://www.cnblogs.com/hwaggLee/p/4738740.html
Copyright © 2011-2022 走看看