c# - 为什么这个简单的网络爬虫会失败?
问题描述
我正在用一个非常简单的代码片段测试 HtmlAgilityPack,但它仍然失败,我不明白为什么
var html2 = @"http://www.monki.com/en_sek/newin/view-all-new.html";
HtmlWeb web2 = new HtmlWeb();
var htmldoc2 = web2.Load(html2);
var node2 = htmldoc2.DocumentNode.SelectSingleNode("//head/title");
Console.WriteLine("\n\n\n\n");
Console.WriteLine("Node Name2: " + node2.Name + "\n" + node2.OuterHtml + "\n" + node2.InnerText);
我当然检查了页面上的标题和标题,但 node2 仍然为空,我无法弄清楚原因。
解决方案
看起来该网页正在尝试设置 cookie。也看到这个答案有同样的问题
var loader = new HtmlWeb{ UseCookies = true };
var doc = loader.Load(@"http://www.monki.com/en_sek/newin/view-all-new.html");
var node2 = doc.DocumentNode.SelectSingleNode("//head/title");
Console.WriteLine("\n\n\n\n");
Console.WriteLine("Node Name2: " + node2.Name + "\n" + node2.OuterHtml + "\n" + node2.InnerText);
推荐阅读
- roles - NestJS RolesGuard 未按预期工作
- javascript - return 如何在幕后的 JS 中工作
- javascript - 在javascript中的嵌套对象数组中查找百分比值
- c# - 只有第一个 if 语句触发
- unit-testing - 如何订阅角度服务单元测试中的错误案例
- laravel - 将 Laravel 安装克隆到 Homestead 时出错 - 是数据库问题还是证书问题?
- javascript - 只转义 HTML 而不是使用像 DOMPurify 这样的库来防止 XSS 是否安全?
- database - Is it possible to stop Oracle DB grants for specific user?
- c - 在 SystemV ABI 中返回一个结构
- python - 在为数据类中的字段初始化默认值时调用方法