c#WebRequest与WebBrowser.DocumentText中的Google搜索结果源代码

时间:2012-03-14 14:25:58

标签: c# httpwebrequest

我试图了解通过

获取谷歌页面源代码的不同之处

通过WebBrowser.DocumentText使用HttpWebRequest

public String WebRequestNavigate(string url)
        {
            StringBuilder sb = new StringBuilder();
            byte[] buf = new byte[8192];

            if (url != "")
            {

                    HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
                    myReq.KeepAlive = false;
                    try
                    {
                        HttpWebResponse resp = (HttpWebResponse)myReq.GetResponse();
                        Stream stream = resp.GetResponseStream();

                        String test = "";
                        int count = 0;
                        do
                        {

                            count = stream.Read(buf, 0, buf.Length);

                            if (count != 0)
                            {
                                test = Encoding.UTF8.GetString(buf, 0, count);
                                sb.Append(test);
                            }
                        }
                        while (count > 0);
                        stream.Close();

                    }

                    catch (IOException ex)
                    {
                        System.Threading.Thread.Sleep(500);
                        myReq = (HttpWebRequest)WebRequest.Create(url);
                        myReq.KeepAlive = false;

                    }

            }
            return sb.ToString();

我正在使用的webBrowser函数是:

public String WebNavigateBrowser(String urlString, WebBrowser wb)
        {
            string data = "";
            wb.Navigate(urlString);
            while (wb.ReadyState != WebBrowserReadyState.Complete)
            {
                Application.DoEvents();
            }
            data = wb.DocumentText;
            return data;
        }

我需要获取google网页的源代码。但是,与我从第二个函数获得的源代码相比,HttpWebRequest的第一个函数给了我奇怪的源代码结果:

  • 更改字符,例如%sign等。
  • 源代码中对url页面地址的奇怪添加

我做错了什么? 我该如何解决这个问题?

使用HttpWebRequest是一种快速而灵活的方式来做这件事。

欢迎任何类型的建议在浏览谷歌搜索结果和阅读源代码,以便检索搜索结果的网址。

由于

0 个答案:

没有答案