我想抓一个网站的HTML。当我使用浏览器访问此网站时(无论是Chrome还是FireFox),访问网站+ HTML都没有问题。
当我尝试使用HttpWebRequest
和HtmlAgilityPack
等方法使用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;
}
答案 0 :(得分:3)
当然,饼干应该归咎于again,因为饼干很棒而且很棒。
因此,让我们来看看您第一次访问该网站时Chrome中会发生什么:
(我去了https://www.jodel.city/7700#!home
):
是的,我有302重定向,但服务器也告诉我设置__cfduid
cookie(实际上是两次)。
当您再次访问该网站时,您正确地进入该网站:
注意这次发送__cfduid
Cookie的时间是多少?这是关键所在。
您的C#代码需要:
您可以转到此信息中的第一个链接,查看如何为请求设置Cookie值的示例。