爬虫 spider06——解析数据
生活随笔
收集整理的這篇文章主要介紹了
爬虫 spider06——解析数据
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
解析數(shù)據(jù)本質(zhì)上就是在解析HTML文檔,
- 如何解析HTML文檔呢?
- js 和 jQuery 就可以解析HTML文檔, 但是js 和jQuery是前端的技術(shù), 而目前HTML代碼存儲(chǔ)在java代碼中, 故無(wú)法使用js和jQuery來(lái)解析HTML文檔
- 那么需要使用一種可以在java客戶端來(lái)解析HTML文檔的技術(shù) --->jsoup
官網(wǎng):https://jsoup.org?
?jsoup是一款java解析HTML文檔的工具, 如果要使用jsoup 需要先進(jìn)行導(dǎo)包
? ? ? ??
<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.10.3</version></dependency>- jsoup在使用之前必須先獲取到document對(duì)象
獲取document對(duì)象?
01:
@Test //根據(jù)標(biāo)簽名稱public void jsoupParse01(){String html=" <html>\n" +" <head>\n" +" <title>First parse</title>\n" +" </head>\n" +" <body>\n" +" <p>Parsed HTML into a doc 01.</p>\n" +" <p>Parsed HTML into a doc 02.</p>\n" +" </body>\n" +" </html>";Document document = Jsoup.parse(html);System.out.println("title:"+document.title());Elements ps = document.getElementsByTag("p");System.out.println(ps.size());Element p1 = ps.get(0);System.out.println(p1.text());Element p2 = ps.get(1);System.out.println(p2.text());}結(jié)果顯示:
?
?
02:
@Test //根據(jù)選擇器public void jsoupParse02(){String html=" <html>\n" +" <head>\n" +" <title>First parse</title>\n" +" </head>\n" +" <body>\n" +" <p class='clsPHTML'>Parsed HTML into a doc 01.</p>\n" +" <p id='doc02'>Parsed HTML into a doc 02.</p>\n" +" </body>\n" +" </html>";Document document = Jsoup.parse(html);//選擇器:根據(jù)id查找節(jié)點(diǎn)Elements p = document.select("p#doc02");System.out.println(p.text());//選擇器:根據(jù)class查找節(jié)點(diǎn)Elements pcls = document.select("p.clsPHTML");System.out.println(pcls.text());//選擇器:根據(jù)節(jié)點(diǎn)層次查找節(jié)點(diǎn)Elements bodyp = document.select("body > p");System.out.println(bodyp.text());}?結(jié)果顯示:
?
03:
@Test //根據(jù)url解析頁(yè)面public void jsoupParse03() throws IOException {String html="http://www.manmanbuy.com/";Document document = Jsoup.connect(html).get();System.out.println(document.title());}?結(jié)果顯示:
04:
@Test //根據(jù)本地文件解析頁(yè)面public void jsoupParse04() throws IOException {String html="d:\\a.html";Document document = Jsoup.parse(new File(html),"UTF-8");//選擇器:根據(jù)id查找節(jié)點(diǎn)Elements p = document.select("p#doc02");System.out.println(p.text());}?結(jié)果顯示:
05:
@Test //爬取慢慢買商品分類public void jsoupParse06() throws IOException {String html="http://www.manmanbuy.com/";Document document = Jsoup.connect(html).get();Elements goods = document.select("div[class=sub-nav] > ul > li > div[class=hd] > a");for (Element good : goods) {System.out.println(good.text());}}?結(jié)果展示:
總結(jié)
總結(jié): jsoup常用方法
- parse(String html) ; 獲取document對(duì)象
- select("選擇器"); 根據(jù)指定的選擇器獲取元素
- text()/html(); 獲取內(nèi)容體的數(shù)據(jù), text方法獲取文本內(nèi)容 html方法主要使用用來(lái)獲取文本+html內(nèi)容
- <a>跳轉(zhuǎn)首頁(yè)</a>
- attr(String key); 根據(jù)指定屬性名稱獲取屬性值
?
保存數(shù)據(jù)
目前將數(shù)據(jù)保存到MySQL 或者 文件中 , 后期數(shù)據(jù)保存到hadoop hbase
- 如何保存到MySQL中:
- JDBC
- mybatis
- spring中JDBCTemplate
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的爬虫 spider06——解析数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: PageHelper分页插件的原理是什么
- 下一篇: 爬虫 spider07——爬取腾讯娱乐新