c# 打印html页面,如何通过c#获取html页面源代码

标签:c

我希望从url或url以.htm在本地驱动器中保存完整的网页asp但我没有成功.

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;

}

错误:

Too many automatic redirections were attempted.

尝试使用此代码但未成功.

许多网址使用此代码成功,但此网址不成功.

解决方法:

这是方法

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;

}

}

}

结果变量将包含HTML页面,然后您可以将其保存为这样的文件

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

注意您必须使用命名空间

using System.Net.Http;

如果您使用的是旧版VS,那么您可以看到此answer用于同一目的使用WebClient和WebRequest,但实际上更新VS是一个更好的解决方案.

标签:c

来源: https://codeday.me/bug/20190527/1164841.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值