摘要:介紹在博客爬蟲(chóng)爬取中國(guó)高校排名前名并寫入中,我們利用來(lái)寫爬蟲(chóng),將中的大學(xué)排名表格爬取出來(lái),并存入到中。本次分享將用的來(lái)實(shí)現(xiàn)相同的功能,并將爬取到的數(shù)據(jù)存入到數(shù)據(jù)庫(kù)中。
介紹
??在博客:Python爬蟲(chóng)——爬取中國(guó)高校排名前100名并寫入MySQL中,我們利用Python來(lái)寫爬蟲(chóng),將http://gaokao.xdf.cn/201702/1... 中的大學(xué)排名表格爬取出來(lái),并存入到MySQL中。
??本次分享將用Java的Jsoup API來(lái)實(shí)現(xiàn)相同的功能,并將爬取到的數(shù)據(jù)存入到MongoDB數(shù)據(jù)庫(kù)中。
??我們將在Eclipse中寫程序,因此,需要下載以下jar包:
bson-3.6.3.jar
jsoup-1.10.3.jar
mongodb-driver-3.6.3.jar
mongodb-driver-core-3.6.3.jar
新建webScraper項(xiàng)目和jsoupScraper包,并將以上jar包加入到項(xiàng)目路徑中,如下圖:
程序??在jsoupScraper包下新建JsoupScaper.java文件,其完整代碼如下:
package jsoupScraper; /* 本爬蟲(chóng)利用Jsoup爬取中國(guó)大學(xué)排血排行榜前100名 * 并將爬取后的結(jié)果存入到MongoDB數(shù)據(jù)庫(kù)中 */ import java.util.List; import java.util.ArrayList; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; import java.net.*; import java.io.*; import com.mongodb.MongoClient; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; public class JsoupScraper { public static void main(String[] args) { String url = "http://gaokao.xdf.cn/201702/10612921.html"; insertIntoMongoDB(url); } // insertIntoMongoDB()函數(shù):將爬取的表格數(shù)據(jù)插入到MongoDB中 public static void insertIntoMongoDB(String url) { try{ // 連接到本地的 mongodb 服務(wù) MongoClient mongoClient = new MongoClient("localhost", 27017); // 連接到university數(shù)據(jù)庫(kù),不過(guò)該數(shù)據(jù)庫(kù)不存在,則創(chuàng)建university數(shù)據(jù)庫(kù) MongoDatabase mongoDatabase = mongoClient.getDatabase("university"); System.out.println("Connect to database successfully"); // 創(chuàng)建集合,該集合事先不存在 mongoDatabase.createCollection("rank"); System.out.println("集合創(chuàng)建成功"); // 將爬取的表格數(shù)據(jù)作為文檔分條插入到新建的集合中 MongoCollection運(yùn)行collection = mongoDatabase.getCollection("rank"); System.out.println("集合 test 選擇成功"); List content = getContent(url); for(int i=2; i documents = new ArrayList (); documents.add(document); collection.insertMany(documents); System.out.println("第"+i+"條文檔插入成功"); } // 關(guān)閉mongodb連接 mongoClient.close(); System.out.println("MongoDB連接已關(guān)閉"); } catch(Exception e){ e.printStackTrace(); } } // getContent()函數(shù),返回爬取的表格數(shù)據(jù) public static List getContent(String url){ List content = new ArrayList (); // 利用URL解析網(wǎng)址 URL urlObj = null; try{ urlObj = new URL(url); } catch(MalformedURLException e){ System.out.println("The url was malformed!"); return content; } // URL連接 URLConnection urlCon = null; try{ // 打開(kāi)URL連接 urlCon = urlObj.openConnection(); // 將HTML內(nèi)容解析成UTF-8格式 Document doc = Jsoup.parse(urlCon.getInputStream(), "utf-8", url); // 刷選需要的網(wǎng)頁(yè)內(nèi)容 Elements elems = doc.getElementsByTag("tbody").first().children(); // 提取每個(gè)字段的文字部分 content = elems.eachText(); return content; } catch(IOException e){ System.out.println("There was an error connecting to the URL"); return content; } } }
??運(yùn)行上述程序,結(jié)果如下:
??前往MongoDB數(shù)據(jù)庫(kù)中查看,如下圖:
結(jié)束語(yǔ)??該爬蟲(chóng)其實(shí)并不復(fù)雜,實(shí)現(xiàn)的原理也很簡(jiǎn)單,我們已經(jīng)用能Java和Python來(lái)實(shí)現(xiàn)了。希望以后能寫一些關(guān)于Java爬蟲(chóng)的文章,歡迎大家交流~~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/68902.html
摘要:介紹在博客爬蟲(chóng)爬取中國(guó)高校排名前名并寫入中,我們利用來(lái)寫爬蟲(chóng),將中的大學(xué)排名表格爬取出來(lái),并存入到中。本次分享將用的來(lái)實(shí)現(xiàn)相同的功能,并將爬取到的數(shù)據(jù)存入到數(shù)據(jù)庫(kù)中。 介紹 ??在博客:Python爬蟲(chóng)——爬取中國(guó)高校排名前100名并寫入MySQL中,我們利用Python來(lái)寫爬蟲(chóng),將http://gaokao.xdf.cn/201702/1... 中的大學(xué)排名表格爬取出來(lái),并存入到My...
摘要:很多人學(xué)習(xí)爬蟲(chóng)的第一驅(qū)動(dòng)力就是爬取各大網(wǎng)站的妹子圖片,比如比較有名的。最后我們只需要運(yùn)行程序,即可執(zhí)行爬取,程序運(yùn)行命名如下完整代碼我已上傳到微信公眾號(hào)后臺(tái),在癡海公眾號(hào)后臺(tái)回復(fù)即可獲取。本文首發(fā)于公眾號(hào)癡海,后臺(tái)回復(fù)即可獲取最新編程資源。 showImg(https://segmentfault.com/img/remote/1460000016780800); 閱讀文本大概需要 1...
摘要:二效果預(yù)覽獲取到數(shù)據(jù)之后做了下分析,最終做成了柱狀圖,鼠標(biāo)移動(dòng)可以看出具體的商品數(shù)量。在元之間的商品最多,越往后越少,看來(lái)大多數(shù)的產(chǎn)品都是定位為低端市場(chǎng)。最后就是銷量前的店鋪和鏈接了。 ...
摘要:現(xiàn)在我們用一個(gè)實(shí)戰(zhàn)項(xiàng)目,來(lái)進(jìn)一步掌握框架的使用。此次的項(xiàng)目爬取的目標(biāo)是去哪兒網(wǎng),我要將所有攻略的作者標(biāo)題出發(fā)日期人均費(fèi)用攻略正文等保存下來(lái),存儲(chǔ)到中。代表當(dāng)前的爬取速率。 showImg(https://segmentfault.com/img/remote/1460000015563534); 閱讀文本大概需要 13 分鐘。 通過(guò)之前的文章介紹,你現(xiàn)在應(yīng)該對(duì) pyspider 有了一...
摘要:楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲(chóng)技術(shù)以供學(xué)習(xí),。本文來(lái)源知乎作者路人甲鏈接楚江數(shù)據(jù)提供網(wǎng)站數(shù)據(jù)采集和爬蟲(chóng)軟件定制開(kāi)發(fā)服務(wù),服務(wù)范圍涵蓋社交網(wǎng)絡(luò)電子商務(wù)分類信息學(xué)術(shù)研究等。 楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲(chóng)技術(shù)以供學(xué)習(xí),http://www.chujiangdata.com。 第一:Python爬蟲(chóng)學(xué)習(xí)系列教程(來(lái)源于某博主:htt...
閱讀 2573·2023-04-25 20:05
閱讀 2907·2023-04-25 17:56
閱讀 2217·2021-10-14 09:49
閱讀 2702·2019-08-29 15:10
閱讀 2933·2019-08-29 12:25
閱讀 430·2019-08-28 18:23
閱讀 768·2019-08-26 13:26
閱讀 1384·2019-08-23 18:21