nodejs cheerio verstümmelter Code

王林
Freigeben: 2023-05-23 12:32:08
Original
619 Leute haben es durchsucht

Während der Datenübertragung kann es leicht zu Problemen mit verstümmelten Zeichen kommen. Bei der Verwendung von NodeJS zum Datencrawlen wird Cheerio häufig zum Parsen von Dokumenten verwendet. Allerdings ist der mit Cheerio analysierte Inhalt manchmal verstümmelt. Dieses Problem könnte viele Entwickler stören, die Cheerio verwenden. In diesem Artikel werden die Gründe und Lösungen für verstümmelte Zeichen in Cheerio vorgestellt und Entwicklern dabei geholfen, das Problem schnell zu lösen.

  1. Der Grund für verstümmelte Cheerio-Zeichen

Wenn beim Parsen des Dokuments die Kodierung des Dokuments nicht mit der von Cheerio analysierten Kodierung übereinstimmt, treten verstümmelte Zeichen auf. Die spezifischen Gründe sind wie folgt:

(1) Problem mit der Kodierung der Quelldatei. Wenn die Quelldatei eine Nicht-UTF-8-Codierungsmethode wie GBK, GBK2312 usw. verwendet und Cheerio beim Parsen die UTF-8-Codierung verwendet, wird das analysierte Chinesisch verstümmelt.

(2) Netzwerkübertragungsproblem. Wenn das analysierte Dokument über das Netzwerk übertragen wird, stimmt die Codierungsmethode der Netzwerkübertragung möglicherweise nicht mit der Codierungsmethode des Cheerio-Parsings überein, was dazu führt, dass der analysierte Inhalt verstümmelt wird.

  1. Cheerio-Lösung für verstümmelten Code

Die Lösung für das Problem mit Cheerio-verstümmeltem Code ist eigentlich sehr einfach. Die spezifische Methode lautet wie folgt:

(1) Geben Sie die Parsing-Kodierungsmethode an. Wenn das Dokument eine Nicht-UTF-8-Kodierungsmethode verwendet, können Sie bei der Cheerio-Analyse die entsprechende Kodierungsmethode angeben, z. B. GBK, GBK2312 usw. Das Codebeispiel lautet wie folgt:

const cheerio = require('cheerio'); const iconv = require('iconv-lite'); const request = require('request'); const url = 'https://www.example.com'; // 需要解析的页面 URL const options = { url: url, encoding: null // 设置编码为 null }; request(options, function (error, response, buffer) { const html = iconv.decode(buffer, 'gbk'); // 将 buffer 转成 GBK 编码的字符串 const $ = cheerio.load(html.toString()); // 使用 cheerio 加载 HTML 字符串 console.log($('title').text()); // 输出 title 标签的内容 });
Nach dem Login kopieren

(2) Überprüfen Sie die Kodierungsmethode für die Netzwerkübertragung. Verschlüsselungsprobleme bei der Übermittlung von Dokumenten sollten nach Möglichkeit vermieden werden. Sie können die Entwicklertools Ihres Browsers verwenden, um zu sehen, welche Codierung für die Netzwerkübertragung verwendet wird, und dann die Codierung mit der Codierung abgleichen, die beim Parsen durch Cheerio verwendet wird.

Kurz gesagt, der Weg zur Lösung des Cheerio-Verstümmelungsproblems besteht darin, auf die Kodierungsmethode des Dokuments und die Kodierungsmethode der Netzwerkübertragung zu achten, damit sie mit der Kodierungsmethode bei der Cheerio-Analyse übereinstimmen. Nur wenn Entwickler auf diese Probleme achten, können sie vermeiden, dass Cheerio verstümmelte Zeichen analysiert.

Das obige ist der detaillierte Inhalt vonnodejs cheerio verstümmelter Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!