ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JSOUP 简单爬取网页

2020-10-27 02:02:59  阅读:171  来源: 互联网

标签:网页 String java url text utm 爬取 JSOUP import


目录

前情提要:

公司有一个需求是利用java订阅知乎RSS的数据源,通过上网查询资料通过JSOUP是个不错的选择,操作简单方便

一、maven项目的pom依赖

<!-- 解析html -->
<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.8.3</version>
</dependency>

二、代码案例

package com.rssdemo.utils;


import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;

/**读取Url网页链接中的内容信息
 * @author: zy
 * @Date: 2020/8/14 13:35
 */
public class HtmlContent {

    public static void main(String[] args) throws Exception {
        //这里要注意,因为是http请求,所以要加行http://,不然会报错:
        //Http协议异常:java.net.MalformedURLException: no protocol:   www.baidu.com
        String url_read = "https://www.zhihu.com/question/412188418/answer/1386120965?utm_campaign=rss&utm_medium=rss&utm_source=rss&utm_content=title";
        String url_doc = "https://www.zhihu.com/question/412188418/answer/1386120965?utm_campaign=rss&utm_medium=rss&utm_source=rss&utm_content=title";
        //方法1
        HtmlContent htmlContent = new HtmlContent();
        String content = htmlContent.readUrl(url_read, StandardCharsets.UTF_8);
        System.out.println(content);
        System.out.println("--------------");
        //方法2
        Document doc = Jsoup.connect(url_doc).get();
        Elements elementsByClass = doc.getElementsByClass("NumberBoard-itemValue");
//        for (int i = 0; i < elementsByClass.size(); i++) {
//            Element element = elementsByClass.get(i);
//            String text = element.text();
//            System.out.println(text);
//        }
        String text = elementsByClass.get(0).text();
        System.out.println(text);
//        System.out.println(doc);
    }

    /**
     * 读取url的内容
     * @param url 网页链接
     * @param charset 编码字符
     * @return
     * @throws Exception
     */
    public String readUrl(String url, Charset charset) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(new URL(url).openConnection().getInputStream(), charset));
        StringBuffer str = new StringBuffer();
        String realLineStr = null;
        while ((realLineStr = br.readLine()) != null) {
            str.append(realLineStr).append("\r\n"); //每读取一行就换行
        }
        return str.toString();
    }

}

标签:网页,String,java,url,text,utm,爬取,JSOUP,import
来源: https://www.cnblogs.com/ringbug/p/13882352.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有