Maison  >  Article  >  Java  >  Écrivez Java à partir de zéro sur le robot d'exploration Zhihu et stockez le contenu capturé localement (2)

Écrivez Java à partir de zéro sur le robot d'exploration Zhihu et stockez le contenu capturé localement (2)

黄舟
黄舟original
2016-12-24 11:50:451742parcourir

Nous encapsulons ces deux fonctions dans un fichier FileReaderWriter.java pour une utilisation ultérieure.
Ensuite, nous revenons au robot d'exploration Zhihu.
Nous devons ajouter une fonction à la classe d'encapsulation Zhihu de Zhihu pour formater la composition lors de l'écriture en local.

Le code est le suivant :

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, c'est tout. Ensuite, remplacez System.out.println dans la méthode principale par

Le code. est la suivante :

// 写入本地  
        for (Zhihu zhihu : myZhihu) {  
            FileReaderWriter.writeIntoFile(zhihu.writeString(),  
                    "D:/知乎_编辑推荐.txt", true);  
        }

Exécutez, vous pouvez voir que le contenu initialement vu dans la console a été écrit dans le fichier txt local :

Écrivez Java à partir de zéro sur le robot dexploration Zhihu et stockez le contenu capturé localement (2)

Généralement À première vue, il n'y a pas de problème. Après y avoir regardé de plus près, je trouve un problème : il y a trop de balises html, principalement .
Nous pouvons traiter ces balises lors de la sortie.
Remplacez d'abord
par rn dans le flux io, puis supprimez toutes les balises html, afin que cela paraisse beaucoup plus clair.

Le code est le suivant :

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;  
}

La fonction replaceAll ici peut utiliser des expressions régulières, donc toutes les balises

Ce qui précède est le contenu de l'écriture du robot Java Zhihu sans aucune base pour stocker le contenu capturé localement (2). Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www). .php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn