国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

香港云服务器
服務器之家 - 編程語言 - JAVA教程 - 零基礎寫Java知乎爬蟲之將抓取的內容存儲到本地

零基礎寫Java知乎爬蟲之將抓取的內容存儲到本地

2019-12-04 11:31hebedich JAVA教程

上一回我們說到了如何把知乎的某些內容爬取出來,那么這一回我們就說說怎么把這些內容存儲到本地吧。

說到Java的本地存儲,肯定使用IO流進行操作。
首先,我們需要一個創建文件的函數createNewFile:

 

復制代碼代碼如下:

public static boolean createNewFile(String filePath) {  
        boolean isSuccess = true;  
        // 如有則將"\\"轉為"/",沒有則不產生任何變化  
        String filePathTurn = filePath.replaceAll("\\\\", "/");  
        // 先過濾掉文件名  
        int index = filePathTurn.lastIndexOf("/");  
        String dir = filePathTurn.substring(0, index);  
        // 再創建文件夾  
        File fileDir = new File(dir);  
        isSuccess = fileDir.mkdirs();  
        // 創建文件  
        File file = new File(filePathTurn);  
        try {  
            isSuccess = file.createNewFile();  
        } catch (IOException e) {  
            isSuccess = false;  
            e.printStackTrace();  
        }  
        return isSuccess;  
    }  

 

然后,我們需要一個寫入文件的函數:

 

復制代碼代碼如下:

public static boolean writeIntoFile(String content, String filePath,  
            boolean isAppend) {  
        boolean isSuccess = true;  
        // 先過濾掉文件名  
        int index = filePath.lastIndexOf("/");  
        String dir = filePath.substring(0, index);  
        // 創建除文件的路徑  
        File fileDir = new File(dir);  
        fileDir.mkdirs();  
        // 再創建路徑下的文件  
        File file = null;  
        try {  
            file = new File(filePath);  
            file.createNewFile();  
        } catch (IOException e) {  
            isSuccess = false;  
            e.printStackTrace();  
        }  
        // 寫入文件  
        FileWriter fileWriter = null;  
        try {  
            fileWriter = new FileWriter(file, isAppend);  
            fileWriter.write(content);  
            fileWriter.flush();  
        } catch (IOException e) {  
            isSuccess = false;  
            e.printStackTrace();  
        } finally {  
            try {  
                if (fileWriter != null)  
                    fileWriter.close();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }  
  
        return isSuccess;  
    }  

 

我們把這兩個函數封裝到一個FileReaderWriter.java文件中以便后續使用。
接著我們回到知乎爬蟲中。
我們需要給知乎的Zhihu封裝類加個函數,用來格式化寫入到本地時的排版。

 

復制代碼代碼如下:

public String writeString() {  
        String result = "";  
        result += "問題:" + question + "\r\n";  
        result += "描述:" + questionDescription + "\r\n";  
        result += "鏈接:" + zhihuUrl + "\r\n";  
        for (int i = 0; i < answers.size(); i++) {  
            result += "回答" + i + ":" + answers.get(i) + "\r\n";  
        }  
        result += "\r\n\r\n";  
        return result;  
}  

 

OK,這樣就差不多了,接下來吧mian方法中的System.out.println改成

 

復制代碼代碼如下:

// 寫入本地  
        for (Zhihu zhihu : myZhihu) {  
            FileReaderWriter.writeIntoFile(zhihu.writeString(),  
                    "D:/知乎_編輯推薦.txt", true);  
        }  

 

運行,便可以看到本來在控制臺看到的內容已經被寫到了本地的txt文件里:

零基礎寫Java知乎爬蟲之將抓取的內容存儲到本地

大體一看沒什么問題,仔細看看發現問題:存在太多的html標簽,主要是<b>和<br>。
我們可以在輸出的時候對這些標記進行處理。
先把<br>換成io流里面的\r\n,再把所有的html標簽都刪除,這樣看起來便會清晰很多。

 

復制代碼代碼如下:

public String writeString() {  
    // 拼接寫入本地的字符串  
    String result = "";  
    result += "問題:" + question + "\r\n";  
    result += "描述:" + questionDescription + "\r\n";  
    result += "鏈接:" + zhihuUrl + "\r\n";  
    for (int i = 0; i < answers.size(); i++) {  
        result += "回答" + i + ":" + answers.get(i) + "\r\n\r\n";  
    }  
    result += "\r\n\r\n\r\n\r\n";  
    // 將其中的html標簽進行篩選  
    result = result.replaceAll("<br>", "\r\n");  
    result = result.replaceAll("<.*?>", "");  
    return result;  
}  

 

這里的replaceAll函數可以使用正則,于是所有的<>標簽在最后就都被刪除了。

延伸 · 閱讀

精彩推薦
459
主站蜘蛛池模板: 亚洲精选一区二区 | 日本一区二区不卡 | av电影一区二区 | 精精国产xxxx视频在线播放 | 色接久久| 日韩av免费在线观看 | 欧美综合一区 | 中文日韩在线 | 一性一交一色生活片 | 久久久久中文字幕 | 中文字幕国产一区 | 四季久久免费一区二区三区四区 | 天天天干夜夜夜操 | 亚洲91| 久久久久99 | 久草热8精品视频在线观看 欧美黄色小视频 | 欧美日韩高清在线 | 亚洲高清视频在线 | 噜噜噜在线观看免费视频日本 | 久久性| 天天摸天天摸 | 91精品久久久久久9s密挑 | 快色视频在线观看 | 中文字幕在线免费观看 | 国产综合精品一区二区三区 | 色玖玖综合 | 久久久免费看 | 久久丝袜诱惑 | 成人免费在线观看 | 亚洲乱码国产乱码精品精的特点 | 夜夜夜夜夜操 | 国产精品久久久久久久一区探花 | 日本不卡一区 | 91精品福利少妇午夜100集 | 欧美国产精品一区二区三区 | 日韩成人精品在线 | 精品久久中文字幕 | 精品国产精品三级精品av网址 | 亚洲九区 | 中文字幕国产 | 亚洲免费av在线 |