我正在尝试使用 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;                    
    }

我已经选择了TRIPLE,当我写下我发送此方法的URL参数的完全相同的网址时,我的程序会完全下载其他内容。

在firefox中按ctrl + U查看源代码,向我展示了我需要看到的内容(再次,简单的HTML ),但在我的软件中,我看到了完全不同的东西。

是什么给出了?

FOR CLARITY

想象一下,在Firefox中您编写了www.google.com,在Firefox中查看源代码:

<html>
   <head>
   </head>
   <body> 
       <h1>Hello!</h1>
   </body>
</html>

但如果我使用完全相同的网址 DownloadData 方法,我的程序会下载这样的源代码:

<html>
   <head>
   </head>
   <body> 
       <h1>Bonjour!</h1>
   </body>
</html>
有帮助吗?

解决方案

该网站可能正在进行浏览器检测,并根据其是否认为客户端是Firefox,IE,网络爬虫等提供不同的HTML。

其他提示

网站可能会使用在Firefox中设置的Cookie,User-Agent标头或其他HTTP标头来决定应该向您发送哪些内容。

由于您的C#程序发送的数据与Firefox不同,因此网站可能会发送不同的内容。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top