c# - 我在 C# 中的网页抓取和 html 敏捷包有错误
问题描述
private void button1_Click(object sender, EventArgs e)
{
var html = @"https://html-agility-pack.net/from-web";
HtmlWeb web = new HtmlWeb();
var htmldoc = web.Load(html);
var nod = htmldoc.DocumentNode.SelectSingleNode("//head/title");
textBox1.Text = "Node Name: " + nod.Name + "\n" + nod.OuterHtml;
}
起初我想用 c# 和 html 敏捷包学习 webscraoing,但是当我运行我的第一个代码时,会出现这个消息:
{在 HtmlAgilityPack.dll 中发生了“System.Net.WebException”类型的未处理异常
附加信息:底层连接已关闭:发送时发生意外错误。}
解决方案
底层连接已关闭:发送时发生意外错误
当客户端计算机由于连接已关闭或不可用而无法发送 HTTP 请求时,会出现此问题。
由于您尝试访问 HTTPS 页面,因此您可能必须在创建请求之前设置安全协议。
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
var html = @"https://html-agility-pack.net/from-web";
HtmlWeb web = new HtmlWeb();
这将更喜欢 TLS 1.2,但仍允许 1.1 和 1.0(以防止失败,因为某些站点不提供 TLS 1.2)。
推荐阅读
- .net - .Net 中的 IText 7 缺少方法“addCustomMetadataExtensions”?
- javascript - 覆盖html标签的百分比字体大小属性
- r - 如何对R中的每6行进行子集化?
- linux - 如何使用 Linux “platform_driver”?
- ubuntu - Image Magick ERROR_MODULE UnableToLoadModule
- javascript - Next Js中的动态路由返回404然后重新加载
- visual-studio - 仅具有自定义构建步骤的 Visual Studio 项目(无默认构建)
- javascript - 更新 html 后 Select2-input 中断
- prolog - 如何更正这个“大于”算术 Prolog 代码?
- python - 以进程信号 11 结尾的 Python 脚本:SIGSEGV