WP8 C#网站抓取与登录

本文关键字:登录 抓取 网站 WP8 | 更新日期: 2023-09-27 17:56:28

我正在校园里做一个古老在线学习系统的移动版本的项目。几个星期以来,我一直在尝试在这个网站上抓取一些东西,但我需要先登录才能获得它。我搜索了任何东西,包括HttpWebRequest, CookiesAwareWebClient, etc

到目前为止,我的方法是:

  1. 在网站的登录表单中找到"操作"URL
  2. 已向该网址发送开机自检请求
  3. 接收包含 Headers["Set-Cookie"] cookie 的响应
  4. 使用内容的URL创建新HttpWebRequest(需要先登录)。
  5. 将 set-cookie 的标头复制到该请求中。
  6. 运行它(但失败)

我也尝试在CookieAwareWebClient中使用CookieCollection,但它也没有用。

如何正确操作?Cookie 在 HttpWebRequest 中的位置是仅在标头中,还是在 HTTP 数据包中,CookieCollection 的位置在哪里?CookieCollection 是否包含在下一个请求中?

谢谢

WP8 C#网站抓取与登录

你需要使用CookieContainer。这将在HttpWebRequest对象之间为您处理和保存 Cookie:

var cookieJar = new CookieContainer();
var loginWebRequest = WebRequest.Create(loginUrl) as HttpWebRequest;
loginWebRequest.CookieContainer = cookieJar;
// Execute the Web Request
var authRequiredWebRequest = WebRequest.Create(protectedUrl) as HttpWebRequest;
authRequiredWebRequest.CookieContainer = cookieJar;
// Execute the next request
// It will have the auth cookie set appropriately