随笔 - 750  文章 - 1  评论 - 107  阅读 - 34万

[转][C#]抓取网页内容

一个很简单的需求,关键代码如下:

复制代码
private string GetHtml(string item)
{
    // set remote certificate Validation auto pass
    ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(remoteCertificateValidate);
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

    string webSite = item;
    HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(webSite);
    req.KeepAlive = false;
    req.ProtocolVersion = HttpVersion.Version11;
    //req.AllowAutoRedirect = false;   // 不允许自动重定向
    req.Method = "GET";
    req.Timeout = 15 * 1000;    // 传入是秒,需要转换成毫秒
    req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8";
    req.UserAgent = "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36";

    HttpWebResponse rsp = null;
    try
    {
        rsp = (HttpWebResponse)req.GetResponse();
        if (HttpStatusCode.OK == rsp.StatusCode)
        {
            Stream rspStream = rsp.GetResponseStream();     // 响应内容字节流
            using (StreamReader sr = new StreamReader(rspStream,Encoding.UTF8))
            {
                return sr.ReadToEnd();
            }
        }

    }
    finally
    {
        rsp.Close();
    }
    return null;
}
复制代码
private static bool remoteCertificateValidate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error)
{
    return true;
}

 

posted on   z5337  阅读(205)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2018-05-29 [转][C#]WebAPI 必需 Dll
2014-05-29 [转]下拉按钮 C#_Winform 自定义控件
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示