当前位置:  开发笔记 > 编程语言 > 正文

如何通过C#获取HTML页面源代码

如何解决《如何通过C#获取HTML页面源代码》经验,为你挑选了1个好方法。

我想保存在本地驱动器上完整的网页ASP .htm从URL或链接,但我没有成功。

public StreamReader Fn_DownloadWebPageComplete(string link_Pagesource)
{
     //--------- Download Complete ------------------
     //  using (WebClient client = new WebClient()) // WebClient class inherits IDisposable
     //   {

     //client
     //HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(link_Pagesource);

                    //webRequest.AllowAutoRedirect = true;
                    //var client1 = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(link_Pagesource);
                    //client1.CookieContainer = new System.Net.CookieContainer();


                 //   client.DownloadFile(link_Pagesource, @"D:\S1.htm");

              //  }
         //--------- Download Page Source ------------------
 HttpWebRequest URL_pageSource = (HttpWebRequest)WebRequest.Create("https://www.digikala.com");

                    URL_pageSource.Timeout = 360000;
                    //URL_pageSource.Timeout = 1000000;
                    URL_pageSource.ReadWriteTimeout = 360000;
                   // URL_pageSource.ReadWriteTimeout = 1000000;
                    URL_pageSource.AllowAutoRedirect = true;
                    URL_pageSource.MaximumAutomaticRedirections = 300;

                    using (WebResponse MyResponse_PageSource = URL_pageSource.GetResponse())
                    {

                        str_PageSource = new StreamReader(MyResponse_PageSource.GetResponseStream(), System.Text.Encoding.UTF8);
                        pagesource1 = str_PageSource.ReadToEnd();
                        success = true;
                    }

错误:

尝试了太多的自动重定向。

通过此代码尝试尝试,但未成功。

许多网址使用此代码成功,但是此网址未成功。



1> Hakan Fıstık..:

这是方法

    string url = "https://www.digikala.com/";

    using (HttpClient client = new HttpClient())
    {
        using (HttpResponseMessage response = client.GetAsync(url).Result)
        {
            using (HttpContent content = response.Content)
            {
                string result = content.ReadAsStringAsync().Result;
            }
        }
    }

并且result变量将包含该页面,因为HTML您可以将其保存到这样的文件中

System.IO.File.WriteAllText("path/filename.html", result);

注意您必须使用名称空间

using System.Net.Http;

更新,如果你使用的是旧版VS然后就可以看到这个答案,使用WebClientWebRequest为了同样的目的,但实际上更新VS是一个更好的解决方案。

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有