gpt4 book ai didi

c# - 如何在不重定向的情况下检索 HTML 页面?

转载 作者:太空宇宙 更新时间:2023-11-03 22:52:57 24 4
gpt4 key购买 nike

我想抓取网站的 HTML。当我用我的浏览器访问这个网站时(无论是 Chrome 还是 FireFox),我访问网站 + HTML 都没有问题。

当我尝试使用 HttpWebRequestHtmlAgilityPack 等方法用 C# 解析 HTML 时,该网站将我重定向到另一个网站,因此我解析了重定向网站的 HTML .

知道如何解决这个问题吗?

我认为该网站将我的程序识别为程序并立即重定向,所以我尝试使用 Selenium 和 GoogleDriver 以及 FireFoxDriver 但也不走运,我立即被重定向。

网站:https://www.jodel.city/7700#!home

private void bt_load_Click(object sender, EventArgs e)
{
var url = @"https://www.jodel.city/7700#!home";
var req = (HttpWebRequest)WebRequest.Create(url);
req.AllowAutoRedirect = false;
// req.Referer = "http://www.muenchen.de/";
var resp = req.GetResponse();
StreamReader sr = new StreamReader(resp.GetResponseStream());
String returnedContent = sr.ReadToEnd();

Console.WriteLine(returnedContent);
return;
}

最佳答案

当然,cookie 是罪魁祸首 again ,因为 cookie 很棒而且很棒。

那么,让我们看看当您第一次访问该网站时 Chrome 会发生什么:

(我去了https://www.jodel.city/7700#!home):

enter image description here

是的,我得到了 302 重定向,但服务器还告诉我设置一个 __cfduid cookie(实际上是两次)。

当您再次访问该站点时,您将正确地进入该站点:

enter image description here

请注意这次 __cfduid cookie 是如何发送的?这就是这里的关键。

您的 C# 代码需要:

  1. 访问该站点一次,被重定向,但从响应 header 中获取 cookie 值。
  2. 返回请求 header 中包含正确 cookie 值的站点。

您可以转到本文中的第一个链接,查看如何为请求设置 cookie 值的示例。

关于c# - 如何在不重定向的情况下检索 HTML 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46653618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com