DownloadData() 生成与浏览器不同的 HTML
我正在尝试使用 WebClient.DownloadData()
方法下载网站的源 HTML。
我的方法应该给我来源:
public string GetSite(string URL)
{
Uri Site = new Uri(URL);
byte[] lol = Client.DownloadData(Site);
SiteSource = Encoding.ASCII.GetString(lol);
return SiteSource;
}
我已经进行了三次检查,当我编写发送此方法的 URL 参数的完全相同的 url 时,我的程序会完全下载其他内容。
在 Firefox 中按 ctrl+U 查看源代码会显示我需要查看的内容(再次,简单的 HTML),但在我的软件中我看到了完全不同的东西。
什么给?
为了清晰:
想象一下,您在 Firefox 中编写 www.google.com,在 Firefox 中查看源代码,您会看到:
<html>
<head>
</head>
<body>
<h1>Hello!</h1>
</body>
</html>
但是如果我使用 DownloadData
方法完全相同的 URL,我的程序将下载如下源代码:
<html>
<head>
</head>
<body>
<h1>Bonjour!</h1>
</body>
</html>
I'm trying to download the source HTML of a website using the WebClient.DownloadData()
method.
My method is supposed to give me the source:
public string GetSite(string URL)
{
Uri Site = new Uri(URL);
byte[] lol = Client.DownloadData(Site);
SiteSource = Encoding.ASCII.GetString(lol);
return SiteSource;
}
I've TRIPLE checked and when I write the exact same url of the URL parameter I send this method, my programs downloads something else entirely.
Pressing ctrl+U in firefox to see the source code shows me what I need to see (again, simple HTML), but in my software I see something entirely different.
What gives?
FOR CLARITY:
Imagine in Firefox you write www.google.com, viewing the source in Firefox you see:
<html>
<head>
</head>
<body>
<h1>Hello!</h1>
</body>
</html>
But if I were to use the DownloadData
method for the exact same URL, my program would download a source code like this:
<html>
<head>
</head>
<body>
<h1>Bonjour!</h1>
</body>
</html>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
该站点可能会进行浏览器检测,并根据它是否认为客户端是 Firefox、IE、网络爬虫等来提供不同的 HTML。
The site may be doing browser detection, and serving up different HTML depending on whether it perceives the client to be Firefox, IE, a Web crawler, etc.
该网站可能会使用 Firefox 中设置的 cookie、User-Agent 标头或其他 HTTP 标头来决定应向您发送哪些内容。
由于您的 C# 程序发送的数据与 Firefox 不同,因此该网站可能会发送不同的内容。
The site might use cookies that are set in Firefox, the User-Agent header or other HTTP headers to decide what content should be sent to you.
Since your C# program sends different data than Firefox the site might send different content.