Maison > Java > javaDidacticiel > É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)

黄舟
Libérer: 2016-12-24 11:50:45
original
1770 Les gens l'ont consulté

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;  
}
Copier après la connexion

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);  
        }
Copier après la connexion

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;  
}
Copier après la connexion

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) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal