Java爬蟲之利用Jsoup自製簡單的搜尋引擎

2020-12-26 浮生偷閒

內容導讀

在上述代碼中,url為輸入詞條(暫時僅限於英文),進入while循環可一直搜索,當輸入為』exit』時退出。contentText為該詞條的百度百科簡介的網頁形式,通過正則表達式將其中的文字提取出來。代碼雖然簡潔,但是功能還是蠻強大的,充分說明Java也是可以做爬蟲的。

6969Jsoup 是一款Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似於jQuery的操作方法來取出和操作數據。Jsoup的官方網址為: https://jsoup.org/, 其API使用手冊網址為:https://jsoup.org/apidocs/overview-summary.html .6969本次分享將實現的功能為:利用Jsoup爬取某個搜索詞語(暫僅限英文)的百度百科的介紹部分,具體的功能介紹可以參考博客:Python爬蟲——自製簡單的搜尋引擎。在上篇爬蟲中我們用Python進行爬取,這次,我們將用Java來做爬蟲,你沒看錯,就是Java.6969在Eclipse中加入Jsoup包,下載網址為:https://jsoup.org/download .6969爬蟲的具體代碼如下:

package baiduScrape;/* * 本爬蟲主要利用Java的Jsoup包進行網絡爬取 * 本爬蟲的功能: 爬取百度百科的開頭介紹部分 * 使用方法: 輸入關鍵字(目前只支持英文)即可 */import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import java.net.*;import java.io.*;import java.util.Scanner;public class BaiduScrape { public static void main(String[] args) { Scanner input = new Scanner(System.in); String baseUrl = "https://baike.baidu.com/item/"; String url = ""; // 如果輸入文字不是"exit",則爬取其百度百科的介紹部分,否則退出該程序 while(true) { System.out.println("Enter the word(Enter 'exit' to exit):"); url = input.nextLine(); if(url.equals("exit")) { System.out.println("The program is over."); break; } String introduction = getContent(baseUrl+url); System.out.println(introduction+'\n'); } } // getContent()函數主要實現爬取輸入文字的百度百科的介紹部分 public static String getContent(String url){ // 利用URL解析網址 URL urlObj = null; try{ urlObj = new URL(url); } catch(MalformedURLException e){ System.out.println("The url was malformed!"); return ""; } // URL連接 URLConnection urlCon = null; try{ urlCon = urlObj.openConnection(); // 打開URL連接 // 將HTML內容解析成UTF-8格式 Document doc = Jsoup.parse(urlCon.getInputStream(), "utf-8", url); // 刷選需要的網頁內容 String contentText = doc.select("div.lemma-summary").first().text(); // 利用正則表達式去掉字符串中的"[數字]" contentText = contentText.replaceAll("\\[\\d+\\]", ""); return contentText; }catch(IOException e){ System.out.println("There was an error connecting to the URL"); return ""; } }}在上述代碼中,url為輸入詞條(暫時僅限於英文),進入while循環可一直搜索,當輸入為』exit』時退出。contentText為該詞條的百度百科簡介的網頁形式,通過正則表達式將其中的文字提取出來。代碼雖然簡潔,但是功能還是蠻強大的,充分說明Java也是可以做爬蟲的。6969接下來是愉快的測試時間:

運行結果

6969本次分享到此結束,接下來也會持續更新Jsoup方面的相關知識,歡迎大家交流~~

相關焦點

  • SEO學習搜尋引擎爬蟲網頁抓取策略
    搜尋引擎處理的主要對象是海量的網頁,一方面為了節省帶寬、計算和存儲資源,另一方面是為了利用有限的資源抓取到最有價值的網頁以滿足用戶搜索需求,所以在搜尋引擎在處理海量網頁的時候會有一定的策略性。本文主要簡單介紹了寬度(廣度)優先,兼顧深度的遍歷策略、不重複抓取策略、大站優先策略、非完全PageRank策略、OCIP策略、合作抓取策略等主流的網頁抓取策略。
  • 網站SEO優化,爬蟲如何抓取數據,搜尋引擎的工作原理
    什麼是搜尋引擎搜尋引擎是一個幫助用戶搜索他們需要內容的電腦程式。換一種說法,搜尋引擎把計算機中存儲的信息與用戶的信息需求(information need)相匹配,並把匹配的結果展示出來。搞懂了搜尋引擎的工作原理之後,可以解決優化當中很多問題,如網站網站蜘蛛有沒有來網站,網站為什麼沒有收錄,網站為什麼有收錄,沒有排名。搜尋引擎為想要抓取網際網路站的頁面,不可能手動去完成,那麼百度、google他們的工程師就編寫了一個程序,他們給這個自動抓取的程序起了一個名字,爬蟲(也可以叫做「蜘蛛」)。
  • 高級爬蟲實踐|記錄一次自動登錄淘寶網站 By Java
    主要是因為資料太少了,也不想花太多時間研究 selenium 內部的數據交互和命令執行等,於是換了一種 selenium 比較親和的語言 java 來實現。org.openqa.selenium.firefox.FirefoxOptions;import org.openqa.selenium.firefox.FirefoxProfile;import java.io.File
  • 網絡爬蟲技術有哪些用途和危害?
    使用者會經常遇到一種最常見的現象,這就是只要搜索或者關注某方面的信息,那麼馬上就會有網絡上大量的、與之相類似的信息被「推薦」。絕大部分都是網絡小廣G,甚至有大量的垃圾信息。那麼在信息流量堪稱浩如煙海的網絡上,怎麼會被精確到每個用戶到底關注什麼呢?其實這就是運用了網絡爬蟲技術。估計有人對爬蟲二字看起來就發毛。
  • 網絡爬蟲作用有哪些?如何構建網絡爬蟲?
    網絡爬蟲大致有4種類型的結構:通用網絡爬蟲、聚焦網絡爬蟲、增量式網絡爬蟲、深層網絡爬蟲 。1、通用Web爬蟲通用網絡爬蟲所爬取的目標數據是巨大的,並且爬行的範圍也是非常大的,正是由於其爬取的數據是海量數據,故而對於這類爬蟲來說,其爬取的性能要求是非常高的。
  • 成為搜索產品經理(2):認識網絡爬蟲
    在上文中,筆者介紹了網際網路的發展、搜尋引擎的發展,從目錄搜尋引擎講到搜尋引擎。本章節,我們來繼續聊一聊搜索產品背後的技術。因為我本身並不從事技術崗位,本篇文章的讀者,我也默認是與我一樣,不從事技術崗位,但對技術有一定感知的同學,我將盡力將文章寫得簡單、易懂。索引引擎系統由多個子模塊組成,先來了解第一個模塊,網絡爬蟲。一、網絡爬蟲是什麼?
  • 放下你手裡的代碼:爬蟲技術的善與惡
    其後,無數的搜尋引擎促使了爬蟲越寫越複雜,並逐漸向多策略、負載均衡及大規模增量抓取等方向發展。爬蟲的工作成果是搜尋引擎能夠遍歷連結的網頁,甚至被刪除的網頁也可以通過 " 網頁快照 " 的功能訪問。最簡單的例子,你加入的很多微信群,一般群主都會要求不可以私自發廣告,如果未經允許發了廣告,會被立刻踢出群,但是發紅包就沒事,這就是行為準則。爬蟲也有行為準則。早在 1994 年,搜尋引擎技術剛剛興起。
  • 爬蟲玩的好,監獄進的早?
    不論是明網、還是暗網,對爬蟲來說,網站一般都會處於被動的、消極被抓取的地位。在這場利用爬蟲技術索取「信息數據」的搶灘戰中,勝敗自然是兵家常事。有「過五關斬六將」,熬過了訴訟、自掏腰包保命的搜尋引擎公司,也有當下國內外滿負盛名的谷歌搜尋引擎巨頭。
  • python-做爬蟲,如何避免牢獄之災
    隨著數據資源的爆炸式增長,網絡爬蟲的應用場景和商業模式變得更加廣泛和多樣,網絡爬蟲技術為數據收集者提供了極大的便利,也給專業網絡爬蟲公司帶來巨大的收益。但是與之相伴的是許多人好奇的一件事——爬蟲是否違法?
  • 泰隆銀行招數據應用、數據產品、數據爬蟲、JAVA開發等崗位
    >1.3年以上金融相關行業開發工作經驗,具備銀行產品相關經驗者優先;2.熟悉關係資料庫的分析與設計,具備較強資料庫設計和優化能力,熟練使用Oracle、db2,Mysql等主流資料庫;3.精通SQL,精通存儲過程開發,有SQL編寫和調優能力;4.基本掌握windows和linux伺服器上apache等web server的配置,資料庫和程序的部署;基本掌握java
  • 爬蟲究竟是合法還是違法的?
    簡單回答一下這些問題:爬取公司內部信息有公司授權當然不算犯罪的,但是公司內部不用接口而用爬蟲不知道是為什麼?爬取網上公開信息不犯法,但如果大量開啟爬蟲導致對方伺服器崩潰也是違法的,這屬於暴力攻擊的範疇了。
  • 全國首例利用「爬蟲」技術侵入計算機信息系統抓取數據案審結
    全國首例利用「爬蟲」技術侵入計算機信息系統抓取數據案審結 2018-12-29 11:08 來源:澎湃新聞·澎湃號·政務
  • 2018年最新搜尋引擎蜘蛛大全
    今天冬鏡SEO講的是2018年最新各大搜尋引擎蜘蛛名稱整理分享各大seo搜尋引擎的蜘蛛會不斷地訪問抓取我們站點的內容,也會消耗一定的站點流量有時候就需要屏蔽某些蜘蛛訪問我們的站點,文章尾部會講解決辦法了解各大搜尋引擎蜘蛛爬蟲
  • 網絡爬蟲無處不在,無意中的連結分享就能洩露你的隱私
    回答前,需要解釋一下網頁爬蟲的作用。今天,搜尋引擎已經成為大家上網衝浪的標配,甚至有「內事不決問百度,外事不決問谷歌」的說法。搜尋引擎可以根據用戶的需要提供內容豐富的網上信息,相對於傳統的紙質信息媒介,從根本上改變了人們獲取及處理信息的習慣,極大提高了效率。而其基礎就在於大量收集網頁信息的網絡爬蟲。在搜尋引擎發展的初期,程序猿小哥哥相互間炫耀的一個指標就是,自己的爬蟲收集的網頁數量。
  • 基於Java的大型分布式網絡爬蟲體系結構
    【IT168 技術】分類  分布式網絡爬蟲包含多個爬蟲,每個爬蟲需要完成的任務和單個的爬行器類似,它們從網際網路上下載網頁,並把網頁保存在本地的磁碟,從中抽取URL並沿著這些URL的指向繼續爬行。由於並行爬行器需要分割下載任務,可能爬蟲會將自己抽取的URL發送給其他爬蟲。
  • 了解入門爬蟲技術原理,看這篇就夠了
    一、爬蟲系統的誕生通用搜尋引擎的處理對象是網際網路網頁,目前網際網路網頁的數量已達百億,所以搜尋引擎首先面臨的問題是:如何能夠設計出高效的下載系統,以將如此海量的網頁數據傳送到本地,在本地形成網際網路網頁的鏡像備份。
  • SEO的定義-什麼是搜尋引擎優化?
    什麼是搜尋引擎優化(也稱為SEO)?廣義的定義是,搜尋引擎優化是使網頁吸引搜尋引擎的藝術和科學。更狹義地講,SEO試圖調整已知的影響搜尋引擎信譽的特定因素,以使某些頁面比其他正在爭奪相同關鍵字或關鍵詞短語的網頁更具吸引力。
  • 淺談網絡爬蟲中深度優先算法和簡單代碼實現
    理解以上的網頁結構設計之後,現在正式的引入網絡爬蟲中的深度優先算法。   上圖是一個二叉樹結構,通過對這個二叉樹的遍歷,來類比抓取網頁,加深對爬蟲策略的理解。
  • 爬蟲最愛扒的50家網站:一份赤裸裸的《中國焦慮圖鑑》
    你可以簡單地想像:每個爬蟲都是你的「分身」。就像孫悟空拔了一撮汗毛,吹出一堆猴子一樣。你每天使用的百度,其實就是利用了這種爬蟲技術:每天放出無數爬蟲到各個網站,把他們的信息抓回來,然後化好淡妝排著小隊等你來檢索。
  • 程式設計師:Java爬蟲使用Selenium+Autoit自動化爬取複雜頁面
    前言最近玩爬蟲的時候,遇到一個國外的圖片網站,具體哪個就不說了,這個站很有意思,即使拿到了圖片的連結,用httpclient下載都不行,不是User-Agent的原因,不知道圖片伺服器的後端有什麼校驗,沒辦法了,只能用Selenium上了,js逆向成本太高了(其實是我不擅長0.0)這個站用的