C# http请求url获取html



摘自网络:

//方法1 WebClient
public static string GetHTMLByURL(string URL)
{
try
{
string pageHtml = “”;
WebClient MyWebClient = new WebClient();
MyWebClient.Credentials = CredentialCache.DefaultCredentials;//获取或设置用于向Internet资源的请求进行身份验证的网络凭据
Byte[] pageData = MyWebClient.DownloadData(URL); //从指定网站下载数据
MemoryStream ms = new MemoryStream(pageData);
using (StreamReader sr = new StreamReader(ms, Encoding.GetEncoding(“GB2312”)))
{
pageHtml = sr.ReadLine();
}
return pageHtml;
}
catch (Exception ex)
{
return ex.Message.ToString();
}
}

//方法2 WebRequest & WebResponse
public static string GetHTMLByURLRequest(string URL)
{
//Get请求中请求参数等直接拼接在url中
WebRequest request = WebRequest.Create(URL);

//返回对Internet请求的响应
WebResponse resp = request.GetResponse();

//从网络资源中返回数据流
Stream stream = resp.GetResponseStream();

StreamReader sr = new StreamReader(stream, Encoding.UTF8);

//将数据流转换文字符串
string result = sr.ReadToEnd();

//关闭流数据
stream.Close();
sr.Close();

return result;
}

//方法3 Selenium Chrome浏览器
public static string GetHTMLBySelenium(string URL)
{
ChromeDriverService driverService = ChromeDriverService.CreateDefaultService();
driverService.HideCommandPromptWindow = true;

ChromeOptions options = new ChromeOptions();
// 不显示浏览器
//options.AddArgument(“–headless”);

// GPU加速可能会导致Chrome出现黑屏及CPU占用率过高,所以禁用
options.AddArgument(“–disable-gpu”);

// 伪装user-agent
options.AddArgument(“Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1”);

// 设置chrome启动时size大小
//options.AddArgument(“–window-size=414,736”);

// 禁用图片
options.AddUserProfilePreference(“profile.default_content_setting_values.images”, 2);

IWebDriver selenium = new ChromeDriver(driverService, options);
selenium.Navigate().GoToUrl(URL);
return selenium.PageSource
}