Java的Jsoup爬虫
生活随笔
收集整理的這篇文章主要介紹了
Java的Jsoup爬虫
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Java的Jsoup爬蟲,爬攜程酒店評(píng)分,保存數(shù)據(jù)庫(kù)中
- 前言
- 一、Jsoup爬蟲pom
- 二、邏輯代碼部分
- 1.首先我們要先確定爬取的東西,這邊我就以攜程的酒店評(píng)分為例子。
- 2.Jsoup進(jìn)行解析具體要求爬的內(nèi)容
- 3.接下來我們就是將爬取的數(shù)據(jù)存入數(shù)據(jù)庫(kù)中
- 總結(jié)
前言
很多人都知道爬蟲,然后這里就簡(jiǎn)單的介紹一下java爬蟲的使用。
好啦,話不多說進(jìn)入正題!
一、Jsoup爬蟲pom
java使用爬蟲就要用到爬蟲的pom文件
<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.10.2</version></dependency>想要使用Jsoup進(jìn)行爬蟲就要使用到上面的pom文件。
二、邏輯代碼部分
1.首先我們要先確定爬取的東西,這邊我就以攜程的酒店評(píng)分為例子。
首先先要用代碼去獲得這個(gè)頁面的路徑
這時(shí)候就模擬瀏覽器訪問到了這個(gè)頁面
2.Jsoup進(jìn)行解析具體要求爬的內(nèi)容
我們這邊是要獲取酒店的評(píng)分
首先進(jìn)入頁面f12,然后用鼠標(biāo)抓取評(píng)分,就會(huì)有score出來,這就是我們需要爬取的東西,接下來就是用代碼的形式進(jìn)行爬取。
這樣我們就成功的將酒店的評(píng)分爬取到了。
3.接下來我們就是將爬取的數(shù)據(jù)存入數(shù)據(jù)庫(kù)中
為了方便觀看,這里也將酒店的名稱也爬取出來
Elements nameItems = postList.getElementsByClass("list-card-title");for (Element nameItem : nameItems) {Elements titleEle01 = nameItem.select(".list-card-title span[class='name font-bold']");System.err.println("酒店名稱:"+titleEle01.text());}想要將數(shù)據(jù)存入數(shù)據(jù)庫(kù),我們首先需要編寫一個(gè)pojo對(duì)象
為了更加方便直觀的觀看數(shù)據(jù),我這里給數(shù)據(jù)加了id以及time
接著就是mapper
@Mapper public interface LotteryMapper extends BaseMapper<Lottery> { }然后使用通用mapper就可以直接存入數(shù)據(jù)庫(kù)
Document document = Jsoup.parse(html); // //像js一樣,通過標(biāo)簽獲取title // System.out.println(document.getElementsByTag("title").first());//像js一樣,通過id 獲取文章列表元素對(duì)象Element postList = document.getElementById("ibu_hotel_container");//像js一樣,通過class 獲取列表下的所有博客Elements postItems = postList.getElementsByClass("score");//循環(huán)處理每篇博客System.err.println("----------------" + postItems);Elements titleEle = postItems.select(".score span[class='real font-bold']");System.err.println("評(píng)分:" + titleEle.text());Lottery lottery = new Lottery();lottery.setScore(titleEle.text());Elements nameItems = postList.getElementsByClass("list-card-title");for (Element nameItem : nameItems) {Elements titleEle01 = nameItem.select(".list-card-title span[class='name font-bold']");System.err.println("酒店名稱:" + titleEle01.text()); // Lottery lottery = new Lottery();lottery.setName(titleEle01.text());list.add(lottery);System.out.println("---------------------");}lotteryMapper.insert(lottery);接下來看一下數(shù)據(jù)庫(kù)中是否有數(shù)據(jù)
我們這里看一看到有成功爬取的數(shù)據(jù)。
總結(jié)
關(guān)于java爬蟲的東西就到這里了,有不足之處還望指出來。
總結(jié)
以上是生活随笔為你收集整理的Java的Jsoup爬虫的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python之路【第十七篇】:装饰器
- 下一篇: JavaEE 银联支付之网站支付-消费类