日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用jsoup解析html

發(fā)布時間:2025/3/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用jsoup解析html 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我們抓取到頁面后,還需要對頁面進行解析。可以使用字符串處理工具解析頁面,也可以使用正則表達式,但是這些技術都會帶來很大的開發(fā)成本,所以我們需要一款專門解析html頁面的技術。

jsoup是一款java的html解析器,可以直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似Jquery的操作方法來取出和操作數(shù)據(jù)。

jsoup的主要功能如下:

  • 從一個URL,文件或者字符串中解析HTML

  • 使用DOM或CSS選擇器來查找、取出數(shù)據(jù)

  • 可操作HTML元素、屬性、文本

(1)加入pom依賴

? ? ? ?<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.10.2</version></dependency><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>

(2)解析url

? ?@Testpublic void testUrl() throws Exception {//解析URL地址Document doc= Jsoup.parse(new URL("https://movie.douban.com"),1000);//獲取第一個title標簽內的內容String title=doc.getElementsByTag("title").first().text();System.out.println(title);}

雖然使用jsoup可以替代HttpClient直接發(fā)起請求解析數(shù)據(jù),但是往往不會這樣用,因為實際的開發(fā)過程中,需要使用到多線程,連接池,代理等方式,而jsoup對這些的支持不是很好,所以我們一般只把jsoup當做html解析工具使用

(3)解析字符串

這里我們將豆瓣電影250的網站html保存下來,然后利用commons-io包的工具類獲取該html的字符串

? ?@Testpublic void testString() throws Exception {//使用工具類讀取文件,獲取字符串String content = FileUtils.readFileToString(new File("C:\\Users\\Desktop\\學習\\豆瓣電影 Top 250.html"), "utf8");//解析字符串Document doc = Jsoup.parse(content);String title = doc.getElementsByTag("title").first().text();System.out.println(title); ?}

(4)解析文件

? ?@Testpublic void testFile() throws Exception{//解析文件Document doc = Jsoup.parse(new File("C:\\Users\\Desktop\\學習\\豆瓣電影 Top 250.html"), "utf8");String title = doc.getElementsByTag("title").first().text();System.out.println(title);}

(5)使用dom方式遍歷文檔

功能方法
根據(jù)id查詢元素getElementById
根據(jù)標簽獲取元素getElementsByTag
根據(jù)class獲取元素getElementsByClass
根據(jù)屬性獲取元素getElementsByAttribute
? ?@Testpublic void testDom() throws Exception{//解析文件Document doc = Jsoup.parse(new File("C:\\Users\\Desktop\\學習\\豆瓣電影 Top 250.html"), "utf8");//1.根據(jù)id獲取元素String element = doc.getElementById("content").text();System.out.println(element);//2.根據(jù)標簽獲取元素String title = doc.getElementsByTag("title").first().text();System.out.println(title);//3.根據(jù)class獲取元素String element2 = doc.getElementsByClass("inp-btn").first().text();System.out.println(element2);//4.根據(jù)屬性獲取元素String element3 = doc.getElementsByAttribute("href").first().text();System.out.println(element3);String element4 = doc.getElementsByAttributeValue("href","https://movie.douban.com/subject/1292052/").text();System.out.println(element4);}

(6)從元素中獲取數(shù)據(jù)

? ?@Testpublic void testData() throws Exception {//解析文件Document doc = Jsoup.parse(new File("C:\\Users\\Desktop\\學習\\豆瓣電影 Top 250.html"), "utf8");//根據(jù)id獲取數(shù)據(jù)Element element = doc.getElementById("top-nav-appintro");String str = "";//1.從元素中獲取Idstr = element.id();System.out.println(str);//2.從元素中獲取classNamestr = element.className();System.out.println(str);Set<String> classSet = element.classNames();for (String s : classSet) {System.out.println(s);}//3.從元素中獲取屬性的值String id = element.attr("class ");//4.從元素中獲取所有屬性Attributes attributes = element.attributes();System.out.println(attributes.toString());//5.從元素中獲取文本內容textstr = element.text();System.out.println(str);}

(7)Selector選擇器

功能語法
通過標簽查找元素tagname
通過Id查找元素#id
通過class名稱查找元素.class
通過屬性查找元素[attribute]
通過屬性值查找元素[attr=value]
? ?@Testpublic void testSelector() throws Exception{//解析文件Document doc = Jsoup.parse(new File("C:\\Users\\楊峰宇\\Desktop\\學習\\豆瓣電影 Top 250.html"), "utf8");//通過標簽查找元素Elements elements = doc.select("span");for (Element element : elements) {System.out.println(element.text());}System.out.println("==================");//通過id查找元素,比如#idElements elements1 = doc.select("#top-nav-appintro");System.out.println(elements1.first().text());System.out.println("==================");//通過class元素查找元素,比如.classElements elements2 = doc.select(".inp-btn");for (Element element : elements2) {System.out.println(element.text());}System.out.println("==================");//通過屬性查找元素,比如[abc]Elements elements3 = doc.select("[href]");for (Element element : elements3) {System.out.println(element.text());}System.out.println("==================");//通過屬性值來查找元素,比如[abc=123]Elements elements4 = doc.select("[class=pic]");for (Element element : elements4) {System.out.println(element.text());}}

?

?

總結

以上是生活随笔為你收集整理的使用jsoup解析html的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av在线www| 成人性生交7777 | 国内爆初菊对白视频 | 天天曰| caoprom超碰 | 黑料网在线观看 | 日批视屏| va在线观看| av影院在线播放 | 日本a级黄色 | 国产一区二区三区四区视频 | 久久视频在线看 | 中文成人无字幕乱码精品区 | 性高湖久久久久久久久免费 | 欧美精品在线第一页 | 久久深夜福利 | www.毛片.com| 日韩乱码人妻无码系列中文字幕 | www.玖玖玖 | 黄视频免费观看 | 色wwwwww| 国内自拍2020 | 午夜视频久久久 | 亚洲干综合| 在线观看中文字幕av | www.在线播放| 女女互慰揉小黄文 | 色.com| 国产高潮久久久 | 国产女18毛片多18精品 | 国产综合久久久 | 国产第一福利影院 | 欢乐谷在线观看免费播放高清 | 五月天综合激情 | 人人艹视频 | 国产成人无码网站 | 6080毛片| 精品人妻一区二区免费视频 | 亚洲人成电影在线 | 亚州a级片 | 色视频网站在线观看 | 超碰不卡| 久久91亚洲精品中文字幕奶水 | 成人av动漫在线 | 国产乱人伦精品一区二区 | 亚洲精品一区二区三 | 最新中文字幕在线视频 | 无码国产色欲xxxx视频 | 黑人一区 | 亚洲精品久久久久久久久久久久久 | 亚洲九九九九 | 3d动漫精品啪啪一区二区三区免费 | 天天看夜夜 | 国产精品九一 | 亚洲精品h| 黑人精品一区二区三区 | 欧美亚洲在线播放 | 欧美理论片在线观看 | 国产福利视频导航 | 欧类av怡春院 | 91射区| 高清视频一区二区三区 | 亚洲第一偷拍 | 污污动态图 | 黑人爱爱视频 | 综合狠狠| 欧美一区二区三区在线观看视频 | av有声小说一区二区三区 | 深爱激情丁香 | 777毛片 | 国产拍拍拍拍拍拍拍拍拍拍拍拍拍 | 亚洲欧美综合精品久久成人 | 午夜久久久久久久久 | 91精品国产综合久久久蜜臀粉嫩 | 观看毛片 | 亚洲性影院 | 亚洲婷婷一区 | 国产精品久久久久久亚洲 | 中文字幕丰满孑伦无码专区 | yes4444视频在线观看 | 日韩视频在线免费观看 | 久久久中文 | 天堂va在线 | 国产三级一区 | 欧美日本成人 | 天天操夜夜操 | 日本裸体视频 | 久久欧美 | 色婷婷婷婷 | 日本www视频在线观看 | 99re6在线精品视频免费播放 | www.久久av.com | 国产一级在线观看视频 | 天堂av在线中文 | 四虎在线免费观看 | 国产精品青青草 | 蜜桃久久久aaaa成人网一区 | 糖心vlog精品一区二区 | av看片资源|