生活随笔
收集整理的這篇文章主要介紹了
jsoup实现超简单的爬虫
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java爬蟲我教你
爬取數據是個很好玩的事情,最近我也是在研究這個東西,然后呢接下來我給大家講一段小案例,可以滿足各位小伙伴的好奇心,藤井就廢話不多說,直接上代碼
使用工具
maven依賴
(1)lombok
這個依賴是方便我們的爬取數據的對象方便直接進行封裝
<dependency><groupId>org
.projectlombok
</groupId
><artifactId>lombok
</artifactId
><version>1.18.8</version
></dependency
>
(2)jsoup
jsoup 是一款Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似于jQuery的操作方法來取出和操作數據。
<dependency><groupId>org
.jsoup
</groupId
><artifactId>jsoup
</artifactId
><version>1.10.2</version
></dependency
>
使用工具以及框架
工具:IDEA
框架:SpringBoot
項目結構
pojo包
content.java
這個類是存放數據對象的,你需要網站的數據格式肯定是不同的,我們這次爬取網頁數據如下,直接上代碼:
package com
.reptile
.uncletj
.pojo
;import lombok
.AllArgsConstructor
;
import lombok
.Data
;
import lombok
.NoArgsConstructor
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Content {private String title
;private String price
;private String img
;
}
utils包
工具包主要用于將數據存儲在集合中的業務代碼,我這邊直接在控制臺簡單展示給大家看一下
HtmlUtils.java
package com
.reptile
.uncletj
.utils
;import com
.reptile
.uncletj
.pojo
.Content
;
import org
.jsoup
.Jsoup
;
import org
.jsoup
.nodes
.Document
;
import org
.jsoup
.nodes
.Element
;
import org
.jsoup
.select
.Elements
;import java
.net
.URL
;
import java
.net
.URLDecoder
;
import java
.util
.ArrayList
;
import java
.util
.List
;
public class HtmlUtils {public List
<Content> parseJD(String keywords
) throws Exception
{String url
= "https://search.jd.com/Search?keyword=" + URLDecoder
.decode(keywords
, "GBK");Document document
= Jsoup
.parse((new URL(url
)), 30000);Element element
= document
.getElementById("J_goodsList");Elements elements
= element
.getElementsByTag("li");List
<Content> list
= new ArrayList<Content>();for (Element el
: elements
) {String src
= el
.getElementsByTag("img").eq(0).attr("data-lazy-img");String price
= el
.getElementsByClass("p-price").eq(0).text();String name
= el
.getElementsByClass("p-name").eq(0).text();list
.add(new Content(name
, price
,src
));}return list
;}
}
測試
我這里寫了一個測試類,直接實例化utils類就好了,上代碼
Demo.java
package com
.reptile
.uncletj
.main
;import com
.reptile
.uncletj
.utils
.HtmlUtils
;
public class Demo {public static void main(String
[] args
) throws Exception
{HtmlUtils htmlUtils
= new HtmlUtils();htmlUtils
.parseJD("家電").forEach(System
.out
::println
);}
}
爬取數據控制臺顯示
就是這么簡單,數據就到控制臺了,下期我來給大家講解一下怎么把爬取到的數據利用起來,應該用怎么樣的方式呢?盡情期待
總結
以上是生活随笔為你收集整理的jsoup实现超简单的爬虫的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。