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

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


出现的错误是:


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


唯一给我带来问题的网站是Corfo,而不是如何解决此问题。
我感谢您的帮助

最佳答案

该网站依靠Cookie进行工作,例如它请求的网址之一是
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!

使用此cookie,此页面将使用与此jsessionid相关的所有/某些组件来构建自身。

如果客户端代码无法处理这些逻辑(如上述两行所示),则服务器将按预期重置连接,因为服务器不知道如何在没有jsessionid的情况下构建此页面。

System.Net.WebException的内部异常是
{“验证失败,因为远程方已关闭传输流。”}

希望这可以帮助!

关于c# - 刮HTMLagilitypack,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44166980/

10-10 23:34