成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java爬蟲(chóng)之爬取中國(guó)高校排名前100名并存入MongoDB中

GeekQiaQia / 2262人閱讀

摘要:介紹在博客爬蟲(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ù)中。

準(zhǔn)備

??我們將在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 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)行

??運(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

相關(guān)文章

  • Java爬蟲(chóng)爬取國(guó)高校排名100名并存入MongoDB

    摘要:介紹在博客爬蟲(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...

    jzzlee 評(píng)論0 收藏0
  • Scrapy 實(shí)戰(zhàn)爬取妹子圖

    摘要:很多人學(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...

    Achilles 評(píng)論0 收藏0
  • Python爬蟲(chóng)實(shí)戰(zhàn)之爬淘寶商品并做數(shù)據(jù)分析,現(xiàn)在賺錢沒(méi)點(diǎn)技術(shù)還真不行!

    摘要:二效果預(yù)覽獲取到數(shù)據(jù)之后做了下分析,最終做成了柱狀圖,鼠標(biāo)移動(dòng)可以看出具體的商品數(shù)量。在元之間的商品最多,越往后越少,看來(lái)大多數(shù)的產(chǎn)品都是定位為低端市場(chǎng)。最后就是銷量前的店鋪和鏈接了。 ...

    jsyzchen 評(píng)論0 收藏0
  • pyspider 實(shí)戰(zhàn)項(xià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 有了一...

    banana_pi 評(píng)論0 收藏0
  • 零基礎(chǔ)如何學(xué)爬蟲(chóng)技術(shù)

    摘要:楚江數(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...

    KunMinX 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

GeekQiaQia

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<