Java爬蟲實(shí)戰(zhàn)——利用jsoup爬取網(wǎng)頁(yè)資源

前言

最近沉寂了幾周,那是因?yàn)樾【幵诼耦^farming催植,學(xué)習(xí)新技術(shù)肮蛹,思考人生……我一直認(rèn)為分享的目的在于自我成長(zhǎng)并造福他人,我們?cè)?jīng)和現(xiàn)在在網(wǎng)路上搜索的資料和方案又何嘗不是別人分享和總結(jié)的呢创南?感謝有那么多人在默默分享和付出……

今天給大家分享一個(gè)小爬蟲方案伦忠,小編很久很久之前就想深入爬蟲的世界,可是放眼大都是Python系列稿辙,雖然用Python很爽很優(yōu)雅昆码,但一直在Java棧里,暫時(shí)不想額外去學(xué)Python邻储,就想玩Java版的爬蟲可實(shí)現(xiàn)嗎赋咽?答案是肯定的,利用jsoup就輕松實(shí)現(xiàn)靜態(tài)頁(yè)面信息抓取……

Jsoup簡(jiǎn)介

百度百科:jsoup 是一款Java 版的HTML解析器吨娜,可直接解析某個(gè)URL地址脓匿、HTML文本內(nèi)容。它提供了一套非常省力的API宦赠,可通過(guò)DOM陪毡,CSS以及類似于jQuery的操作方法來(lái)取出和操作數(shù)據(jù)。

上面的介紹勾扭,最關(guān)鍵就是jsoup是一款Java的HTML解析器毡琉,那么我們可以理解,通過(guò)它提供的API妙色,我們可以像使用jQuery或者WebDriver一樣去查找桅滋、定位甚至操作各種元素標(biāo)簽了。


Jsoup API
官網(wǎng)地址https://jsoup.org****
java項(xiàng)目對(duì)應(yīng)的jsoup包https://jsoup.org/download身辨,使用jar或maven丐谋、gradle可按照需要自選。
API 文檔https://jsoup.org/apidocs/overview-summary.html
下面是包結(jié)構(gòu)煌珊,看包名是不是很好理解笋鄙,用過(guò)WebDriver的童鞋應(yīng)該不會(huì)陌生:
org.jsoup.nodes 類似于 WebElemet 的元素對(duì)象類
org.jsoup.select 類似于元素查找和定位的By類
看英文描述應(yīng)該也不難理解,詳細(xì)的API在使用的時(shí)候直接查API即可怪瓶,這里不詳細(xì)介紹了萧落。

實(shí)戰(zhàn)練習(xí)

膩不膩害践美,拉出來(lái)用用就知道了,那么我們找個(gè)例子來(lái)小小練習(xí)下吧找岖,就實(shí)現(xiàn)下面這個(gè)例子吧:想獲取簡(jiǎn)書首頁(yè)下的所有文章URL
下面擼起袖子開(kāi)干:
1陨倡、分析網(wǎng)頁(yè):


通過(guò)查看網(wǎng)頁(yè)源碼,不難發(fā)現(xiàn)文章的標(biāo)題都是采用<a>標(biāo)簽組織的鏈接许布,那先不管其他的兴革,先把<a href=>這樣的節(jié)點(diǎn)爬出來(lái)再說(shuō),不符合規(guī)則的后面再根據(jù)屬性過(guò)濾就行蜜唾。其實(shí)這個(gè)例子杂曲,已經(jīng)簡(jiǎn)化了過(guò)濾操作,仔細(xì)觀察發(fā)現(xiàn)文章列表都是在列表<li>中袁余,且還有id屬性擎勘,這就大大簡(jiǎn)化了過(guò)濾工作(無(wú)論是UI自動(dòng)化還是爬蟲應(yīng)該都喜歡這樣的頁(yè)面)。


2颖榜、編碼:
新建java- maven項(xiàng)目棚饵,在pom.xml加上jsoup的依賴:


新建測(cè)試類:

代碼就這么簡(jiǎn)單,關(guān)鍵在于節(jié)點(diǎn)過(guò)濾掩完,匹配方式j(luò)soup提供了詳細(xì)的方法噪漾,可以參考API Selector類的說(shuō)明:https://jsoup.org/apidocs/org/jsoup/select/Selector.html


運(yùn)行一下看下效果:


完美輸出了簡(jiǎn)書首頁(yè)的20篇文章地址和標(biāo)題。

總結(jié)

學(xué)會(huì)爬蟲的好處大家都懂且蓬,爬資料欣硼,爬優(yōu)惠信息,爬美女圖片恶阴,爬電影種子分别,爬Japan AV(河蟹)……只有你想不到的,沒(méi)有爬不到的存淫。當(dāng)然這只是一個(gè)小小的示例,但也改變了我之前的認(rèn)知沼填,以為寫爬蟲就只能用Python了找爱,其實(shí)Jsoup也可以輕松實(shí)現(xiàn)的涤姊,但是jsoup只能爬取靜態(tài)頁(yè)面,對(duì)于那些有Ajax交互的URL就難以抓取了,這需要如何做呢沟饥?等我嘗試完各種方法后,找到最優(yōu)的方案再分享給大家……

原文來(lái)自下方公眾號(hào)袱蚓,轉(zhuǎn)載請(qǐng)聯(lián)系作者肮塞,并務(wù)必保留出處。
想第一時(shí)間看到更多原創(chuàng)技術(shù)好文和資料梯澜,請(qǐng)關(guān)注公眾號(hào):測(cè)試開(kāi)發(fā)棧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末寞冯,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吮龄,老刑警劉巖俭茧,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異漓帚,居然都是意外死亡母债,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門尝抖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)毡们,“玉大人,你說(shuō)我怎么就攤上這事昧辽⊙萌郏” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵奴迅,是天一觀的道長(zhǎng)青责。 經(jīng)常有香客問(wèn)我,道長(zhǎng)取具,這世上最難降的妖魔是什么脖隶? 我笑而不...
    開(kāi)封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任暇检,我火速辦了婚禮,結(jié)果婚禮上构蹬,老公的妹妹穿的比我還像新娘。我一直安慰自己悔据,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布藻烤。 她就那樣靜靜地躺著,像睡著了一般头滔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坤检,一...
    開(kāi)封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天早歇,我揣著相機(jī)與錄音,去河邊找鬼蛀醉。 笑死拯刁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的割捅。 我是一名探鬼主播帚桩,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼账嚎,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼郭蕉!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起旁振,我...
    開(kāi)封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤拐袜,失蹤者是張志新(化名)和其女友劉穎蹬铺,沒(méi)想到半個(gè)月后秉撇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡印衔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年奸焙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了彤敛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片墨榄。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡袄秩,死狀恐怖逢并,靈堂內(nèi)的尸體忽然破棺而出砍聊,到底是詐尸還是另有隱情,我是刑警寧澤蟹肘,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布帘腹,位于F島的核電站聘萨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏胸完。R本人自食惡果不足惜赊窥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一锨能、第九天 我趴在偏房一處隱蔽的房頂上張望芍耘。 院中可真熱鬧,春花似錦倔约、人聲如沸坝初。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)重罪。三九已至蛆封,卻和暖如春唇礁,著一層夾襖步出監(jiān)牢的瞬間惨篱,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工琢融, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留簿寂,地道東北人常遂。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓克胳,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親捏雌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子笆搓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容