我正在使用 HtmlAgilityPack 在 C# Asp.Net 中执行 Scraping,到目前为止,我在从多个 Web 执行 Scratch 时没有遇到问题,但是,尝试弹出以下代码时出现错误
Var getHtmlWeb = new HtmlWeb ();
Var home page = getHtmlWeb.Load ("https://www.corfo.cl/sites/cpp/home");
出现的错误是:
"Connection terminated: Unexpected sending error."
唯一给我带来问题的网站是 Corfo,而不是如何解决这个问题。 感谢您的帮助
最佳答案
本网站依赖于 cookie 来工作,例如它请求的 URL 之一是 https://www.corfo.cl/sites/Satellite;jsessionid=T8w78ZolfWgr3ZoEBBvE81nBiXbXIdjfF1In3bgpZiYvL_w8TF4p!1081543155!-596930586?c=Page&cid=1456408322328&pagename=CorfoPortalPublico/Page/corfoListadoOfertaInteligenteWebLayout
因此,当您请求 www.corfo.cl 时,它首先转发到 www.corfo.cl/sites/cpp/home,然后在/sites/文件夹中设置 cookie jsessionid=OHS_1~T8w78ZolfWgr3ZoEBBvE81nBiXbXIdjfF1In3bgpZiYvL_w8TF4p!1081543155!-596930586等等
使用此 cookie,此页面会使用与此 jsessionid 相关的所有/某些组件构建自身。
如果客户端代码不处理这些逻辑,如上面两行,服务器将按预期重置连接,因为服务器不知道如何在没有 jsessionid 的情况下构建此页面。
System.Net.WebException 的内部异常是 {“身份验证失败,因为远程方已关闭传输流。”}
希望这对您有所帮助!
关于c# - 抓取 htmlagilitypack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44166980/