精华内容
下载资源
问答
  • jsoup解析网页

    2014-11-29 15:37:21
    该资源包含了一个利用jsoup实现的网页解析,读取搜狐新闻上自己想要的数据,简单易懂。
  • Jsoup解析网页工具类

    2018-12-07 16:38:28
    jsoup.jar用于java网页解析的工具类,版本最新,小巧并且强大
  • 使用Jsoup解析网页

    千次阅读 2017-02-11 00:13:58
    Jsoup解析网页 网页分析 实战


    之前已经发表过一篇使用HtmlParser类来解析视频网站的教程

    http://blog.csdn.net/gfd54gd5f46/article/details/54960538


    我发现htmlparser类太旧了,而且用起来语法也不清晰。

    所以我又找来一个更强大的解析网页的工具类:Jsoup 来帮助我们制作更强大的网络爬虫


    下载Jsoup类


          jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。


    Jar包地址:

    http://jsoup.org/packages/jsoup-1.8.1.jar

    构建Maven项目自动下载jar包:

    http://blog.csdn.net/gfd54gd5f46/article/details/54973954

    Jsoup在线API文档:

    http://tool.oschina.net/apidocs/apidoc?api=jsoup-1.6.3

    Jsoup开发指南:

    http://www.open-open.com/jsoup/attributes-text-html.htm

    解析网页


    我这里就找一个图片网站来进行测试

    http://www.nipic.com/index.html


    1、获取单张图片的下载地址

    • 随便点击一张首页的图片

    1



    进去之后我们发现这个页面只是图片的列表,我们要获取的是单个图片的地址,所以还需要点击进去查找

    2



    点击第一张图片,查看到了单张图片

    3



    同样,我们要对这个页面进行分析,找到规律来获取这张图片的地址链接

    F12进入调试页面

    (调试页地址:http://www.nipic.com/show/16519633.html



    观察规律发现:

    • 图片的下载地址在src属性下

    • 图片有个唯一的id属性:J_worksImg

    4



    找到规律后,我们就来使用Jsoup来获取一下图片的下载地址

    • 代码实现:
        /**
         * 通过子页面链接(图片网页)获取到图片下载地址
         * "http://www.nipic.com/show/16519633.html"
         * @return downloadPicUrl
         */
        public static List<String>  getPicDownUrlFromAllPicPage(String url) {
            //保存图片的下载地址
            List<String> list = new ArrayList<String>();
            try {
                //通过传入一个url打开一个链接并且获取内容,将内容存到文件中
                Document doc = Jsoup.connect(url).get();
                //如果文档不为空    &&    页面中没有出现  “唔,未找到任何页面!!!” 则认为该页面是个正常页面
                if (doc != null && !Jsoup.connect(url).get().html().contains("唔,未找到任何页面!!!")) {
                    //获取到网页的唯一的id元素
                    Element element = doc.getElementById("J_worksImg");
                    //判断元素不为空 && src里面的内容不为空
                    if (element != null && !element.attr("src").equals("")) {
                        //将图片地址添加到集合中
                        list.add(element.attr("src"));
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            //http://pic120.nipic.com/file/20170114/958400_203916268000_2.jpg
            return list;
        }



    Main方法()

    public static void main(String[] args) {
            //程序第一个运行的时间(毫秒)
            long begin = System.currentTimeMillis();
    
            List<String> list = getPicDownUrlFromAllPicPage("http://www.nipic.com/show/16519633.html");
            for (String string : list) {
                System.out.println("图片下载地址:" + string);
            }
    
    
            //输出程序最后所花费的时间
            System.out.println("\n\n用时:" + (System.currentTimeMillis() - begin)/1000f + "s");   
        }


    这样我们就拿到了图片的下载地址了

    5



    对下载地址进行切割


    我们可以再写一个方法,将每个图片的下载链接进行切割,拿到图片名

        /**
         * 将图片下载地址进行切割,得到文件名
         * 根据传入的url地址,获取文件的名称
         * @param url
         * @return name
         */
        public static String getNameFromUrl(String url) {
            //找到最后一个 "/" 的位置
            int beginIndex = url.lastIndexOf("/");
            //截取 "/" 后面的内容
            String name = url.substring(beginIndex + 1);
            return name;
        }
    将刚刚的图片下载地址放进去
    
    System.out.println(getNameFromUrl("http://pic120.nipic.com/file/20170114/958400_203916268000_2.jpg"));


    这样就拿到了图片名,方便后续保存工作

    6


    2、获取单个列表里面所有的图片介绍页面


    既然我们能通过图片介绍页面来获取到图片的下载地址,那我们能不能把整一个图片列表的所有图片介绍页面都获取到呢?


    我们分析一下图片列表的网页

    http://www.nipic.com/topic/show_27036_1.html?ll



    定位到第一张图片发现 这个介绍页面有一个class属性 ,并且有个值:block works-detail hover-none

    7



    查找一下这个值发现 有40条数据,而且都是我们所关注的内容

    8



    既然知道了规律之后,那我们就来获取一下这个列表下的所有图片介绍页面

    • 代码实现:
    /**
         * 获取分页里的所有的子页面地址
         * @param OnePage 传入一个图片列表页面
         * "http://www.nipic.com/topic/show_27036_1.html"
         */
        public static List<String> getAllPicPageFromOnePage(String OnePage) {
            List<String> list = new ArrayList<String>();
            try {
                Document doc = Jsoup.connect(OnePage).get();
                //获取所有包括该class属性的元素
                Elements elements = doc.getElementsByClass("block works-detail hover-none");
                System.out.println("当前页面有:" + elements.size() + " 子页面\n");
                for (Element element : elements) {
                    //将获取到的元素添加到集合
                    list.add(element.attr("href"));
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return list;
        }


    Main方法

    public static void main(String[] args) {
            //程序第一个运行的时间(毫秒)
            long begin = System.currentTimeMillis();
    
            List<String> list = getAllPicPageFromOnePage("http://www.nipic.com/topic/show_27036_1.html");
            for (String string : list) {
                System.out.println(string);
            }
    
            //输出程序最后所花费的时间
            System.out.println("\n\n用时:" + (System.currentTimeMillis() - begin)/1000f + "s");   
        }


    确实获取到了我们想要的这40个页面

    9




    3、获取所有的分页列表页面


    既然我们能通过一个列表页面来获取所有的图片介绍页面,那么我们能不能获取到所有的列表页面的呢?


    我们继续来分析页面

    http://www.nipic.com/topic/show_27036_1.html?ll



    从网页源码中可以发现,每个列表页面链接都有一个class属性,并且属性里面都包涵有
    “ eo-page-num“ 的内容

    10



    查找一下整个页面有多少包涵“eo-page-num”内容的数据

    • 发现只有3个地方有这个页面(也就是说只有3个列表)

    11



    知道规律之后,我们就来获取一下这个页面的所有分页列表

    • 代码实现
    /**
         * 获取所有的图片列表页面
         * "http://www.nipic.com/topic/show_27036_1.html?ll"
         */
        public static List<String> getAllPicPage(String url) {
            List<String> list = new ArrayList<String>();
            try {
    
                Document doc = Jsoup.connect(url).get();
                //获取所有包括该class属性的元素
                Elements elements = doc.getElementsByClass("seo-page-num");
                System.out.println("共有:" + elements.size() + " 个分页");
                for (Element element : elements) {
                    //将元素中的href值添加到集合中
                    list.add(element.attr("href"));
                    System.out.println(element.attr("href"));
                }
    
            } catch (IOException e) {
                e.printStackTrace();
            }
    
    
    
    
            return list;
        }


    Main方法()

    public static void main(String[] args) {
            //程序第一个运行的时间(毫秒)
            long begin = System.currentTimeMillis();
    
            List<String> list = getAllPicPage("http://www.nipic.com/topic/show_27036_1.html");
            for (String string : list) {
                System.out.println(string);
            }
    
            //输出程序最后所花费的时间
            System.out.println("\n\n用时:" + (System.currentTimeMillis() - begin)/1000f + "s");
        }


    确实获取到了所有的列表页面

    http://www.nipic.com/topic/show_27036_1.html
    http://www.nipic.com/topic/show_27036_2.html
    http://www.nipic.com/topic/show_27036_3.html

    12


    实战


    下载所有列表的图片:

    • 1、 获取所有的列表页面

    • 2、 获取每个列表页面的所有图片介绍页面

    • 3、 通过介绍页面获取下载地址

    • 4、 对下载地址进行切割拿到图片名

    • 5、 通过下载链接跟图片名,将所有的图片下载到images目录



    在项目下创建一个images目录用来保存图片

    • 代码实现
    package com.lingdu.jsoup;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.util.ArrayList;
    import java.util.List;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;
    
    /**
     *  下载图片Demo
     *  2017-2-10
     *  LingDu
     */
    public class GetPicDemo {
    
        /**
         * 5、下载图片
         * 到nipic网站下载图片
         * 传入图片下载地址即可下载到images目录下
         */
        public static void downloadPic(String myUrl) {
            if (!myUrl.equals("")) {
                try {
                    URL url = new URL(myUrl);
                    BufferedInputStream bis = new BufferedInputStream(url.openConnection().getInputStream());
                    byte myArray[] = new byte[1024*1024];
                    int len = 0;
                    String fileName = getNameFromUrl(myUrl);
                    //System.out.println(fileName);
                    BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("images/" + fileName));
                    while((len = bis.read(myArray)) != -1){
                        bos.write(myArray, 0, len); 
                    }
                    bos.flush();
                    bos.close();
                    bis.close();
                    System.out.println("图片:" + fileName +" ------>下载成功!");
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
    
        /**
         * 4、将图片下载地址进行切割,得到文件名
         * 根据传入的url地址,获取文件的名称
         * @param url
         * @return name
         */
        public static String getNameFromUrl(String url) {
            //找到最后一个 "/" 的位置
            int beginIndex = url.lastIndexOf("/");
            //截取 "/" 后面的内容
            String name = url.substring(beginIndex + 1);
            return name;
        }
    
    
    
        /**
         * 3、通过子页面链接(图片网页)获取到图片下载地址
         * "http://www.nipic.com/show/16519633.html"
         * @return downloadPicUrl
         */
        public static List<String>  getPicDownUrlFromAllPicPage(String url) {
            //保存图片的下载地址
            List<String> list = new ArrayList<String>();
            try {
                //通过传入一个url打开一个链接并且获取内容,将内容存到文件中
                Document doc = Jsoup.connect(url).get();
                //如果文档不为空    &&    页面中没有出现  “唔,未找到任何页面!!!” 则认为该页面是个正常页面
                if (doc != null && !Jsoup.connect(url).get().html().contains("唔,未找到任何页面!!!")) {
                    //获取到网页的唯一的id元素
                    Element element = doc.getElementById("J_worksImg");
                    //判断元素不为空 && src里面的内容不为空
                    if (element != null && !element.attr("src").equals("")) {
                        //将图片地址添加到集合中
                        list.add(element.attr("src"));
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            //http://pic120.nipic.com/file/20170114/958400_203916268000_2.jpg
            return list;
        }
    
    
        /**
         * 2、获取分页里的所有的子页面地址
         * @param OnePage 传入一个图片列表页面
         * "http://www.nipic.com/topic/show_27036_1.html"
         */
        public static List<String> getAllPicPageFromOnePage(String OnePage) {
            List<String> list = new ArrayList<String>();
            try {
                Document doc = Jsoup.connect(OnePage).get();
                //获取所有包括该class属性的元素
                Elements elements = doc.getElementsByClass("block works-detail hover-none");
                System.out.println("当前页面有:" + elements.size() + " 子页面\n");
                for (Element element : elements) {
                    //将获取到的元素添加到集合
                    list.add(element.attr("href"));
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return list;
        }
    
    
        /**
         * 1、获取所有的图片列表页面
         * "http://www.nipic.com/topic/show_27036_1.html?ll"
         */
        public static List<String> getAllPicPage(String url) {
            List<String> list = new ArrayList<String>();
            try {
    
                Document doc = Jsoup.connect(url).get();
                //获取所有包括该class属性的元素
                Elements elements = doc.getElementsByClass("seo-page-num");
                System.out.println("共有:" + elements.size() + " 个分页");
                for (Element element : elements) {
                    //http://www.nipic.com/topic/show_27036_1.html
                    //http://www.nipic.com/topic/show_27036_2.html
                    //http://www.nipic.com/topic/show_27036_3.html  
                    //将元素中的href值添加到集合中
                    list.add(element.attr("href"));
                }
    
            } catch (IOException e) {
                e.printStackTrace();
            }
            return list;
        }
    
    
        /**
         * 这个方法处理所有逻辑
         */
        public static void downloadAll() {
            //拿到图片列表页面
            List<String> picPagelist = new ArrayList<String>();
            //拿到所有图片下载页面
            List<String> allPicPageList = new ArrayList<String>();
            //拿到图片的下载地址
            List<String> picDownUrlList = new ArrayList<String>();
            picPagelist = getAllPicPage("http://www.nipic.com/topic/show_27036_1.html?ll");
            for (String str : picPagelist) {
                System.out.println("\n页面:----------------->" + str);
                allPicPageList = getAllPicPageFromOnePage(str);
                for (String str1 : allPicPageList) {
                    try {
                        picDownUrlList = getPicDownUrlFromAllPicPage(str1);
                        for (String str2 : picDownUrlList) {
                            downloadPic(str2);
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
    
        public static void main(String[] args) {
            //程序第一个运行的时间(毫秒)
            long begin = System.currentTimeMillis();
    
            //调用所有方法的整合体
            downloadAll();
    
            //输出程序最后所花费的时间
            System.out.println("\n\n用时:" + (System.currentTimeMillis() - begin)/1000f + "s");   
        }
    }


    这样就下载到了所有的图片了

    13



    查看一下images目录 ,确实把所有列表的图片都下载下来了,总共有92张图片

    14


    实现原理

    • 分析网页找到规律

    • 依次往下嵌套循环即可获取到下载地址

    • 最终完成下载

    展开全文
  • 如何使用kettle解析网页url链接 用途 本文介绍如何使用kettle,遍历web页面中的url链接,并输出到文本文档。 依赖jar包 jsoup-1.11.3.jar 转换文件步骤 生成记录 此步骤用于设置需要访问的web地址,以sina为例: ...

    用途

    本文介绍如何使用kettle,遍历web页面中的url链接,并输出到文本文档。

    技术

    kettle
    javascript
    jsoup-1.11.3.jar

    转换文件步骤

    在这里插入图片描述

    生成记录

    此步骤用于设置需要访问的web地址,以sina为例:
    在这里插入图片描述

    JavaScript代码

    在这里插入图片描述

    源码如下:

    var Jsoup = org.jsoup.Jsoup;
    var Document = org.jsoup.nodes.Document;
    var Element = org.jsoup.nodes.Element;
    var Elements = org.jsoup.select.Elements;
    function parseLinks(){
    	writeToLog("开始解析");
    	var doc = Jsoup.connect(url).get();
    	var els = doc.select("div ul li");
    	writeToLog("行数:"+els.size());
    	for (var i=0;i<els.size();i++) {
    		var r = els.get(i);
            //输出行处理
    		var newRow = createRowCopy(getOutputRowMeta().size());
    		var rowIndex = getInputRowMeta().size();
    		// 获取文件链接地址
    		var link=r.select("a").attr("href");
    		var title=r.select("a").text();
    		newRow[rowIndex++]=i + "\t"+title + "\t" + link;
    		//输出行
    		putRow(newRow);
    	}
    }
    writeToLog("解析完成");
    parseLinks();
    

    过滤记录

    过滤输出的内容,需要包含http协议:
    在这里插入图片描述

    文本文件输出

    将结果输出到脚本的当前目录:
    在这里插入图片描述
    输出字段为:newRow
    在这里插入图片描述

    写日志

    此步骤保留为空,则默认输出全部内容:
    在这里插入图片描述

    输出结果

    在这里插入图片描述

    展开全文
  • Jsoup解析网页

    2021-08-22 17:15:41
    上一篇文章的HttpClient主要是用来获取网页,Jsoup主要就是用来解析网页。 jsoup提供了非常方便的api让我们能通过DOM,CSS等方法来解析网页,对前端有了解的话就更简单...--jsoup解析网页--> <!--jsoup--> &

    上一篇文章的HttpClient主要是用来获取网页,Jsoup主要就是用来解析网页。
    jsoup提供了非常方便的api让我们能通过DOM,CSS等方法来解析网页,对前端有了解的话就更简单了,就像在js中操作页面元素一样。
    jsoup主要功能:
    1.从一个URL,文件或字符串中解析HTML;
    2.使用DOM或CSS选择器来查找、取出数据
    3.可操作HTML元素、属性、文本
    在pom.xml文件中添加依赖

      <!--jsoup解析网页-->
        <!--jsoup-->
        <dependency>
          <groupId>org.jsoup</groupId>
          <artifactId>jsoup</artifactId>
          <version>1.10.2</version>
        </dependency>
        <!--例子在test目录下测试,所以添加测试依赖-->
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
          <scope>test</scope>
        </dependency>
        <!--操作文件所需依赖-->
        <dependency>
          <groupId>commons-io</groupId>
          <artifactId>commons-io</artifactId>
          <version>2.6</version>
        </dependency>
        <!--工具类-->
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-lang3</artifactId>
          <version>3.7</version>
        </dependency>
    

    Jsoup解析URL

        @Test
        public void testurl() throws IOException {
            //解析url地址,第一个参数是访问的url, 第二个参数时访问时候的超时时间
            Document document = Jsoup.parse(new URL("https://www.csdn.net/"), 1000);
            //使用标签选择器,获取title标签中的内容(first表示查询到的标签数组第一个,text表示文本内容)
            String title = document.getElementsByTag("title").first().text();
            System.out.println(title);
        }
    

    这里先给出后面会用到的test.html文件

    <html>
     <head> 
      <title>传智播客官网-一样的教育,不一样的品质</title> 
     </head> 
     <body>
    	<div class="city">
    		<h3 id="city_bj">北京中心</h3>
    		<fb:img src="/2018czgw/images/slogan.jpg" class="slogan"/>
    		<div class="city_in">
    			<div class="city_con" style="display: none;">
    				<ul>
    					<li id="test" class="class_a class_b">
    						<a href="http://www.itcast.cn" target="_blank">
    							<span class="s_name">北京</span>
    						</a>
    					</li>
    					<li>
    						<a href="http://sh.itcast.cn" target="_blank">
    							<span class="s_name">上海</span>
    						</a>
    					</li>
    					<li>
    						<a href="http://gz.itcast.cn" target="_blank">
    							<span abc="123" class="s_name">广州</span>
    						</a>
    					</li>
    					<ul>
    						<li>天津</li>
    					</ul>					
    				</ul>
    			</div>
    		</div>
    	</div>
     </body>
    </html>
    

    Jsoup解析字符串

        @Test
        public void testString() throws IOException {
            //使用工具类读取文件,获取字符串
            String file = FileUtils.readFileToString(new File("D:\\test\\test.html"), "utf-8");
            //解析字符串
            Document document = Jsoup.parse(file);
            String title = document.getElementsByTag("title").first().text();
            System.out.println(title);
        }
    

    Jsoup解析文件

        @Test
        public void testFile() throws IOException {
            //解析文件
            Document document = Jsoup.parse(new File("同上,文件位置"), "utf-8");
            String title = document.getElementsByTag("title").first().text();
            System.out.println(title);
        }
    

    通过dom方式解析文件

        @Test
        public void testDOM() throws IOException {
            //解析文件
            Document document = Jsoup.parse(new File("文件位置"), "utf-8");
            //根据id获取元素
            String test = document.getElementById("city_bj").text();
            //根据标签获取元素
            String a = document.getElementsByTag("a").first().text();
            //根据类名获取元素
            String class_a = document.getElementsByClass("class_a").first().text();
            //根据属性获取元素
            String abc = document.getElementsByAttribute("abc").first().text();
            System.out.println(abc);
        }
    
        @Test
        public void testData() throws IOException {
            //解析文件
            Document document = Jsoup.parse(new File("C:\\Users\\Simple\\Desktop\\test.html"), "utf-8");
            //根据id获取元素
            Element element = document.getElementById("test");
            //从元素中获取id
            String id = element.id();
            //从元素中获取类名
            String className = element.className();
            //从元素中获取属性值
            String aClass = element.attr("class");
            //从元素中获取所有属性
            Attributes attributes = element.attributes();
            //从元素中获取文本内容
            String text = element.text();
            System.out.println(text);
        }
    

    Selector选择器组合使用

        @Test
        public void testSelector() throws IOException {
            //解析文件
            Document document = Jsoup.parse(new File("C:\\Users\\Simple\\Desktop\\test.html"), "utf-8");
            //通过标签查找元素
            Elements elements = document.select("span");
            for (Element element : elements) {
                System.out.println(element.text());
            }
            //通过ID查找元素
            Element element1 = document.select("#city_bj").first();
            System.out.println(element1.text());
            //通过类名查找元素
            Element classa = document.select(".class_a").first();
            //通过属性查找元素
            Element abc = document.select("[abc]").first();
            System.out.println(abc.text());
            //通过属性值查找元素
            Elements elements1 = document.select("[class=s_name]");
            for (Element element : elements1) {
                System.out.println(element.text());
            }
        }
    
    @Test
        public void testSelector2() throws IOException {
            //解析文件
            Document document = Jsoup.parse(new File("C:\\Users\\Simple\\Desktop\\test.html"), "utf-8");
            //元素+id
            Element element = document.select("h3#city_bj").first();
            //元素+class
            Element element1 = document.select("li.class_a").first();
            //元素+attr
            Element element2 = document.select("span[abc]").first();
            //任意组合
            Element element3 = document.select("span[abc].s_name").first();
            //查找某个元素的子元素
            Element element4 = document.select("ul ul li").first();
            //查找某个元素的直接子元素(第一级)
            Element element5 = document.select(".city_con > ul > li").first();
            //查找某个元素的所有直接子元素
            Elements elements = document.select(".city_con > *");
            for (Element element6 : elements) {
                System.out.println(element6.text());
            }
        }
    
    展开全文
  • 利用jsoup解析网页

    2014-12-04 22:12:48
    资源包含了一个利用jsoup解析html网页的代码简单易懂
  • Jsoup 解析网页实例

    2014-08-29 16:23:16
    这个只是一个java源文件,用于学习Jsoup
  • jsoup解析网页出现转义符问题

    千次阅读 2017-05-31 16:33:02
    ******************************************************* 我要解析这个网页 http://sports.163.com/13/0830/22/97IFSI5I00051CD5.html 然后直接在获得源码后,使用select 只

    https://www.oschina.net/question/996055_136438

    *******************************************************

    我要解析这个网页  http://sports.163.com/13/0830/22/97IFSI5I00051CD5.html


    然后直接在获得源码后,使用select  只捕获其中一部分  doc.select("textarea[id^=photoList]")

    为何出现了这个情况呢、求大牛们帮忙解决啊 @红薯




    很奇怪的是,我用转义符全部替换之后,直接打印在控制台,显示正确,然后又用Jsoup.parse()这个方法,结果又成了这样子、大神们,帮帮忙吧@jsoup


    html()和outerHtml()的区别只是有没有包含本层而已,最终底层方法是一样的,所以这里确实转义了。

    其实也说得通,因为textarea里的内容是“文本”,html里的纯文本内容,如果不进行转义是不安全的。

    当然这里你的需求是"保持原文",“转义再反转”其实是无法保持原文的。而且Apache的StringEscapeUtils的转义范围比Jsoup要小,所以其实反转是不完整的。

    有个比较hack的方法:

    Document doc = Jsoup.connect("http://sports.163.com/13/0830/22/97IFSI5I00051CD5.html").get();
    //清空jsoup的转义表,会使jsoup失去转义能力
    Entities.EscapeMode.base.getMap().clear();
    Elements elements = doc.select("textarea[id^=photoList]");
    for(Element e:elements){
        System.out.println(e.html());
    }
    



    展开全文
  • 【3】Jsoup 解析网页 在整个【2】的实现过程中,我们已经拿到网页返回的数据,但我们要的是整个网页中的图片,并不是这种杂乱无章的网页页面数据,那么我们该怎么办呢?简单,接下来我们需要用到另外一种技术了 ---...
  • 主要是出现了textarea标签 textarea里的内容是“文本”,不进行转义是不安全的。 解决办法 全局替换把textarea替换为div String replace = elementById.toString...Document doc = Jsoup.parse(replace); ...
  • Jsoup解析网页内容

    2016-07-31 22:53:44
    jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。jsoup提供两种方式来获取HTML中的数据,一种是DOM方式,另一种是比较灵活的选择器方式来获取数据。 1. 加载相关库  笔者使用的是android ...
  • jsoup 怎么获取到隐藏元素 ;"></div>
  • 本文实例讲述了Android利用jsoup解析HTML页面的方法。分享给大家供大家参考,具体如下: 这节主要是讲解jsoup解析HTML页面。由于在android开发过程中,不可避免的涉及到web页面的抓取,解析,展示等等,所以,在这里...
  • 问题:使用jsoup解析网页报错null异常 解决: 设置请求头绕过登录 解析成功
  • 利用jsoup解析网页和xml文件

    千次阅读 2014-11-29 15:40:23
    当我们需要从网页上抓取自己想要的数据时,可以利用jsoup来实现,一个开源的jar包,短小精悍,很好入门: 今天要解析的是搜狐新闻:http://pinglun.sohu.com/ 代码如下: private static void parse() { try ...
  • Jsoup解析网页html文档

    千次阅读 2018-12-04 19:27:20
    Jsoup是Java用于解析HTML,就类似XML解析器用于解析XML。 Jsoup解析HTML成为真实世界的HTML。 它与jquery选择器的语法非常相似,并且非常灵活容易使用以获得所需的结果。 有哪些功能? 查找和提取数据,使用...
  • jsoup解析网页之豆瓣看书信息爬取: 在这里面我们要用到jsoup 之selecter的内容: 简单介绍一下: jsoup elements对象支持类似于CSS (或jquery的选择器语法,来实现非常强大和灵活的查找功能。可以使用Element....
  • jsoup解析网页

    千次阅读 2014-12-04 21:58:50
    今天再次利用jsoup解析网页,解析的连接:http://so.csdn.net/so/search/s.do?q=java线程池 如图,需要解析的是标题,作者,日期,浏览次数,内容简介,网页连接 代码如下: Document doc = Jsoup.connect(...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,250
精华内容 2,500
关键字:

jsoup解析网页