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

資訊專欄INFORMATION COLUMN

Java爬蟲之爬取中國高校排名前100名并存入MongoDB中

jzzlee / 1121人閱讀

摘要:介紹在博客爬蟲爬取中國高校排名前名并寫入中,我們利用來寫爬蟲,將中的大學(xué)排名表格爬取出來,并存入到中。本次分享將用的來實現(xiàn)相同的功能,并將爬取到的數(shù)據(jù)存入到數(shù)據(jù)庫中。

介紹

??在博客:Python爬蟲——爬取中國高校排名前100名并寫入MySQL中,我們利用Python來寫爬蟲,將http://gaokao.xdf.cn/201702/1... 中的大學(xué)排名表格爬取出來,并存入到MySQL中。
??本次分享將用Java的Jsoup API來實現(xiàn)相同的功能,并將爬取到的數(shù)據(jù)存入到MongoDB數(shù)據(jù)庫中。

準(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項目和jsoupScraper包,并將以上jar包加入到項目路徑中,如下圖:

程序

??在jsoupScraper包下新建JsoupScaper.java文件,其完整代碼如下:

package jsoupScraper;

/* 本爬蟲利用Jsoup爬取中國大學(xué)排血排行榜前100名
 * 并將爬取后的結(jié)果存入到MongoDB數(shù)據(jù)庫中
 */

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ù)庫,不過該數(shù)據(jù)庫不存在,則創(chuàng)建university數(shù)據(jù)庫
            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{
            // 打開URL連接
            urlCon = urlObj.openConnection(); 
            // 將HTML內(nèi)容解析成UTF-8格式
            Document doc = Jsoup.parse(urlCon.getInputStream(), "utf-8", url);
            // 刷選需要的網(wǎng)頁內(nèi)容
            Elements elems = doc.getElementsByTag("tbody").first().children();
            // 提取每個字段的文字部分
            content = elems.eachText();
            
            return content;
        }
        catch(IOException e){
            System.out.println("There was an error connecting to the URL");
            return content;
        }

    }
}
運行

??運行上述程序,結(jié)果如下:

??前往MongoDB數(shù)據(jù)庫中查看,如下圖:

結(jié)束語

??該爬蟲其實并不復(fù)雜,實現(xiàn)的原理也很簡單,我們已經(jīng)用能Java和Python來實現(xiàn)了。希望以后能寫一些關(guān)于Java爬蟲的文章,歡迎大家交流~~

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/19243.html

相關(guān)文章

  • Java爬蟲爬取高校排名100名并存入MongoDB

    摘要:介紹在博客爬蟲爬取中國高校排名前名并寫入中,我們利用來寫爬蟲,將中的大學(xué)排名表格爬取出來,并存入到中。本次分享將用的來實現(xiàn)相同的功能,并將爬取到的數(shù)據(jù)存入到數(shù)據(jù)庫中。 介紹 ??在博客:Python爬蟲——爬取中國高校排名前100名并寫入MySQL中,我們利用Python來寫爬蟲,將http://gaokao.xdf.cn/201702/1... 中的大學(xué)排名表格爬取出來,并存入到My...

    GeekQiaQia 評論0 收藏0
  • Scrapy 實戰(zhàn)爬取妹子圖

    摘要:很多人學(xué)習(xí)爬蟲的第一驅(qū)動力就是爬取各大網(wǎng)站的妹子圖片,比如比較有名的。最后我們只需要運行程序,即可執(zhí)行爬取,程序運行命名如下完整代碼我已上傳到微信公眾號后臺,在癡海公眾號后臺回復(fù)即可獲取。本文首發(fā)于公眾號癡海,后臺回復(fù)即可獲取最新編程資源。 showImg(https://segmentfault.com/img/remote/1460000016780800); 閱讀文本大概需要 1...

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

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

    jsyzchen 評論0 收藏0
  • pyspider 實戰(zhàn)項目爬取去哪兒

    摘要:現(xiàn)在我們用一個實戰(zhàn)項目,來進一步掌握框架的使用。此次的項目爬取的目標(biāo)是去哪兒網(wǎng),我要將所有攻略的作者標(biāo)題出發(fā)日期人均費用攻略正文等保存下來,存儲到中。代表當(dāng)前的爬取速率。 showImg(https://segmentfault.com/img/remote/1460000015563534); 閱讀文本大概需要 13 分鐘。 通過之前的文章介紹,你現(xiàn)在應(yīng)該對 pyspider 有了一...

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

    摘要:楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),。本文來源知乎作者路人甲鏈接楚江數(shù)據(jù)提供網(wǎng)站數(shù)據(jù)采集和爬蟲軟件定制開發(fā)服務(wù),服務(wù)范圍涵蓋社交網(wǎng)絡(luò)電子商務(wù)分類信息學(xué)術(shù)研究等。 楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),http://www.chujiangdata.com。 第一:Python爬蟲學(xué)習(xí)系列教程(來源于某博主:htt...

    KunMinX 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<