【问题标题】:I need a session ID from page A to correctly open page B. How to get page B HTML?我需要页面 A 的会话 ID 才能正确打开页面 B。如何获取页面 B HTML?
【发布时间】:2023-03-10 22:42:01
【问题描述】:

我想获取B 页面的 HTML 代码。不幸的是网站需要先打开A页面才能获得session_id,之后我终于可以打开我想要的网页了。获取B页html代码的解决方案是什么?我尝试用 WebClient 来做,但 session_id 可能没有保存。

        var client = new WebClient();
        client.DownloadString("http://moria.umcs.lublin.pl/link/");
        client.DownloadString("http://moria.umcs.lublin.pl/link/grid/1/810");

【问题讨论】:

  • 我不完全确定您是否可以远程访问站点的缓存.....

标签: c# html webclient


【解决方案1】:

这取决于您访问页面 B 时服务器如何跟踪您已经访问过页面 A。

它很可能使用某种会话 ID,它可能保存在 cookie 中。在任何浏览器的开发人员工具中检查 HTTP 请求和响应标头可以让您了解该网站如何跟踪用户。

如果您需要能够将会话 ID 存储在 cookie 中,可以使用 cookie 感知网络客户端示例here

【讨论】:

    【解决方案2】:

    我会使用 HttpWebRequest 而不是 WebClient。我没有在 WebClient 中看到任何可以获取或设置 cookie 的方法。看看这个 MSDN 链接。您的初始请求代码类似于链接中的代码。对于另一个页面的下一个请求,使用您从初始请求获得的响应中的 cookie 设置 CookieContainers;在您请求回复之前。

    https://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.cookiecontainer(v=vs.110).aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-09
      • 2017-02-14
      • 2021-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-02
      相关资源
      最近更新 更多