【问题标题】:How to fix strange symbols when web scraping网页抓取时如何修复奇怪的符号
【发布时间】:2019-08-27 22:02:08
【问题描述】:

基本上,我是从一个网站上提取信息,特别是一个在整个页面中散布着希伯来语的网站。正确获取希伯来语对程序来说非常重要,但我得到的不是希伯来语字符,而是奇怪的重音英文字符。

我尝试过 Encoding.Convert 但它没有奏效,我尝试过更改编码,但那只是给了我????符号。我尝试将其写入 txt 文件,以查看是否是 cmd 无法显示它;我仍然得到相同的符号。

using (WebClient client = new WebClient())
{
       string htmlCode = client.DownloadString("https://www.pealim.com/dict/");

       Console.WriteLine(htmlCode); 
 }

【问题讨论】:

  • 可以看到,WebClient 使用的是 WebRequest 编码,而不是 WebResponse 编码。因此,您可以使用 HttpWebRequest 执行通常可以执行的操作:改为从 HttpWebResponse 获取实际编码。然后,您可以使用实际编码对字符串进行解码。不一定是UTF-8。许多 https 资源仍然使用本地/特定编码(见图)。
  • 顺便说一句,如果你有控制台应用,Courier New 可以打印希伯来符号。

标签: c# encoding


【解决方案1】:

我建议使用HttpClient 而不是 WebClient。它是较新的并处理编码问题。

但是,https://www.pealim.com/dict/ 将页面返回为 UTF-8,因此编码不是问题!我怀疑您的控制台显示的希伯来语不正确;见this article

验证您是否收到正确文本的一种方法是在您的Console.WriteLine 上设置一个断点,然后在调试器中检查该文本。

如果您打算抓取页面,html-agility-pack 非常有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多