c# webrequest返回混合在html代码中的奇怪字符

本文关键字:字符 代码 html webrequest 返回 混合 | 更新日期: 2023-09-27 17:49:29

我有一些从google获取搜索的代码,我刚刚注意到最近检索到的html与web浏览器的响应相比包含额外的字符。我注意到谷歌似乎是强迫https这可能是问题。如果有人能帮我解决一些问题,我会很感激的。

        URL = "http://www.google.com/search?hl=en&safe=off&q=test";
        HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(URL);
        myRequest.Proxy = null;
        myRequest.Method = "GET";
        myRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0";
        myRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
        myRequest.Headers.Add("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
        myRequest.Headers.Add("Accept-Language", "en-us,en;q=0.5");
        WebResponse myResponse = myRequest.GetResponse();
        StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8);
        string result = sr.ReadToEnd();
        sr.Close();
        myResponse.Close();
        TextWriter tw2 = new StreamWriter(Directory.GetCurrentDirectory() + "''google.html");
        tw2.WriteLine(result);
        tw2.Close();

下面是代码和我的web浏览器的结果比较。第一个来自代码,请注意靠近末尾的€Ž。(另一个细微的差异不会影响任何事情,可能是因为不同的头或其他东西。)

Speedtest.net by Ookla - The Global Broadband Speed <em>Test</em></a></h3><div class="s"><div><div class="f kv" style="white-space:nowrap"><cite class="_md"><cite class="visurl">speedtest.net</cite><cite class="visurl"></cite></cite>‎<div 
Speedtest.net by Ookla - The Global Broadband Speed <em>Test</em></a></h3><div class="s"><div><div class="f kv _xu" style="white-space:nowrap"><cite class="_md">www.speed<b>test</b>.net/</cite>‎<div 

c# webrequest返回混合在html代码中的奇怪字符

你的正则表达式有问题。在Unicode响应中使用非ansi字符是完全正常的。你肯定也会有。我们现在生活在统一码时代。它们一定在这里——因为它们存在于谷歌的回应中。这不是一个bug,这是一个特性。:)

WebRequest绝对没有问题。