刮痧htmlagilitypack

时间:2017-05-24 19:28:04

标签: c# web-scraping html-agility-pack

我正在使用HtmlAgilityPack在C#Asp.Net中执行Scraping,到目前为止,我从几个Web进行Scratch时没有遇到任何问题,但是,尝试弹出以下代码我收到错误

Var getHtmlWeb = new HtmlWeb ();
Var home page = getHtmlWeb.Load ("https://www.corfo.cl/sites/cpp/home");

出现的错误是:

  

“连接已终止:意外发送错误。”

唯一给我问题的网络是Corfo而不是如何解决这个问题。 感谢您的帮助

1 个答案:

答案 0 :(得分:1)

此网站依赖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的内部异常是 {"身份验证失败,因为远程方已关闭传输流。"}

希望这有帮助!