Heim  >  Artikel  >  Java  >  Schreiben Sie Java von Grund auf und speichern Sie den gecrawlten Inhalt lokal (2)

Schreiben Sie Java von Grund auf und speichern Sie den gecrawlten Inhalt lokal (2)

黄舟
黄舟Original
2016-12-24 11:50:451745Durchsuche

Wir kapseln diese beiden Funktionen zur späteren Verwendung in eine FileReaderWriter.java-Datei.
Dann kehren wir zum Zhihu-Crawler zurück.
Wir müssen der Zhihu-Kapselungsklasse von Zhihu eine Funktion hinzufügen, um den Schriftsatz beim Schreiben in lokal zu formatieren.

Der Code lautet wie folgt:

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, das ist es. Als nächstes ändern Sie System.out.println in der Hauptmethode in

Der Code lautet wie folgt:

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

Ausführen, Sie können sehen, dass der ursprünglich in der Konsole angezeigte Inhalt in die lokale TXT-Datei geschrieben wurde:

Schreiben Sie Java von Grund auf und speichern Sie den gecrawlten Inhalt lokal (2)

Im Allgemeinen gibt es auf den ersten Blick kein Problem. Bei genauerem Hinsehen finde ich ein Problem: Es gibt zu viele HTML-Tags, hauptsächlich .
Wir können diese Tags während der Ausgabe verarbeiten.
Ersetzen Sie zuerst
im io-Stream durch rn und löschen Sie dann alle HTML-Tags, damit es viel klarer aussieht.

Der Code lautet wie folgt:

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

Die Funktion „replaceAll“ kann hier reguläre Ausdrücke verwenden, sodass alle -Tags am Ende gelöscht werden.

Das Obige ist der Inhalt des Java Zhihu-Crawlers ohne Grundlage zum lokalen Speichern des erfassten Inhalts (2). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php). .php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn