如何使用c#登录https网站并保持会话?

时间:2012-07-23 17:04:09

标签: c# html-parsing web-scraping

我尝试使用C#登录网站,然后转到网站的其他页面(需要登录)并获取HTML,以便我可以使用htmlagilitypack进行解析。

我可以获得网页的html没有问题,但我在部分记录方面遇到了困难。

我启动了Fiddler并登录以查看会出现什么(我是小提琴手的新手)并且列表中出现了两件事,两个都是CONNECT(我期待它会是一个帖子,因为表单是POST? ?)

我想进入的网站是: https://amn.efanniemae.com/AMN/control

有人能指出我正确的方向/告诉我该怎么做吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

您可能需要与网站所有者或文档核实,看看他们是否有任何自动登录方法。某些登录系统支持自动登录,允许您以查询字符串形式发送信息(非常不安全)或将为您提供要发送的正确POST值。请注意,自动POST登录可能与手动登录不同(即:将隐藏的表单值设置为AutoLogin等),并且某些站点不希望人们出于安全目的自动执行登录过程。

如果您在第一步中取得成功,大多数网站都会向您发送一个cookie,其中包含有关您的会话的信息。因此,为了在请求之间保持会话,您只需保存此cookie,然后使用下一个请求发送它。使用HttpWebRequest对象,您可以使用CookieContainer属性来获取cookie。

有关保存Cookie的详细信息,请参阅此SO帖子How do I log into a site with WebClient?

答案 1 :(得分:1)

在您在选项中启用它之前,Fiddler不会解密ssl流量。转到Fiddler选项,选中“解密ssl流量”,信任证书,您将看到流量。

相关问题