亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jsoup怎么用

發布時間:2022-01-15 17:44:18 來源:億速云 閱讀:163 作者:iii 欄目:大數據

本篇內容主要講解“jsoup怎么用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“jsoup怎么用”吧!

jsoup是一款Java的HTML解析器,可以從html中解析數想要的數據,是用java寫爬蟲必備的工具。

每日增量、總量數據隨意切換

jsoup怎么用

閱讀量、粉絲量、評論數、點贊數、總排名、周排名…… 任意選取

jsoup怎么用

隨意選取時間區間

jsoup怎么用

自從有了這個工具后,我博客一切數據盡收眼底,每天看著這數據一點點的變化,還是蠻有成就感、蠻開心的呢 !!

如何做?

秀完該告訴大家如何做的,首先你得有臺能執行定時任務的主機,云主機或者你臥室的主機都可以,然后得有個數據庫,至于整體功能其實就是一個簡單的增刪改查。哦 不對,只有增查沒有刪改,數據展示的話我用了螞蟻金服開源的可視化庫antv g2,我用的3.8 bug很多不推薦,推薦使用highchart。

我認為其中比較復雜的部分應該是html數據解析的部分,這部分后面我會直接把我代碼告訴你。其次就是數據庫的存儲和查詢,我用spring-boot搭了個web服務,用了spring-boot-starter-quartz寫了每天晚上11:55的定時任務,用mybatis-spring-boot-starter來讀寫數據庫。

html的解析代碼,需要看懂csdn博客頁的html布局,然后逐漸調試獲取數據,當然csdn官方一改版,代碼就執行不了了,所幸這種致命性改版頻率不會特別高,這大半年我就遇到過2-3次,代碼如下,可以直接拿來用,把url換成自己博客url就可以了。

public class CommonUtils {
    private static Logger log = LoggerFactory.getLogger(CommonUtils.class);

    private static Map<String, String> headers;

    static {
        headers = new HashMap<>();
        headers.put("referer", "https://www.google.com/");
        headers.put("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0" +
                ".4183.83 Safari/537.36");
    }

    public static BlogInfoDao getBlogInfo() {
        int retry = 3;
        while (--retry > 0) {
            try {
                BlogInfoDao blogInfoDao = new BlogInfoDao();
                blogInfoDao.setDate(new Date());
                Document doc = Jsoup.connect("https://blog.csdn.net/xindoo").headers(headers).get();
                Element blogElement = doc.getElementsByClass("data-info d-flex item-tiling").get(0);
                // 文章數量
                int articleCnt = Integer.parseInt(blogElement.getElementsByTag("dl").get(0).attr("title"));
                blogInfoDao.setArticleCnt(articleCnt);
                // 周排名
                int wranking = Integer.parseInt(blogElement.getElementsByTag("dl").get(1).attr("title"));
                blogInfoDao.setWranking(wranking);
                // 總排名
                int ranking = Integer.parseInt(blogElement.getElementsByTag("dl").get(2).attr("title"));
                blogInfoDao.setRanking(ranking);
                // 總閱讀量
                int viewCnt = Integer.parseInt(blogElement.getElementsByTag("dl").get(3).attr("title"));
                blogInfoDao.setViewCnt(viewCnt);

                blogElement = doc.getElementsByClass("data-info d-flex item-tiling").get(1);
                // 總積分
                int scoreCnt = Integer.parseInt(blogElement.getElementsByTag("dl").get(0).attr("title"));
                blogInfoDao.setScore(scoreCnt);
                // 粉絲數量
                int fansCnt = Integer.parseInt(blogElement.getElementsByTag("dl").get(1).attr("title"));
                blogInfoDao.setFansCnt(fansCnt);
                // 點贊量
                int likeCnt = Integer.parseInt(blogElement.getElementsByTag("dl").get(2).attr("title"));
                blogInfoDao.setLikeCnt(likeCnt);
                // 評論量
                int commentCnt = Integer.parseInt(blogElement.getElementsByTag("dl").get(3).attr("title"));
                blogInfoDao.setCommentCnt(commentCnt);
                // 收藏量
                int collectCnt = Integer.parseInt(blogElement.getElementsByTag("dl").get(4).attr("title"));
                blogInfoDao.setCollectCnt(collectCnt);

                return blogInfoDao;
            } catch (Exception e) {
                log.error("get bloginfo error, {}", e);
            }
        }
        return null;
    }
}

blogInfoDao是我封裝的用來和數據庫交互的類,沒啥內容這里就不再貼了。

到此,相信大家對“jsoup怎么用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大埔县| 莆田市| 万州区| 伊川县| 永昌县| 裕民县| 万山特区| 区。| 南昌县| 天峻县| 常宁市| 内丘县| 崇州市| 沁源县| 武冈市| 泽库县| 辽中县| 临海市| 红安县| 措勤县| 永寿县| 乃东县| 桃园市| 木兰县| 汾西县| 女性| 南投市| 克拉玛依市| 乌鲁木齐市| 奉新县| 常熟市| 栾城县| 日土县| 太和县| 乌鲁木齐县| 阿勒泰市| 饶平县| 永修县| 松桃| 商水县| 万山特区|