DownloadData()生成与浏览器不同的HTML

时间:2009-10-23 00:46:27

标签: c# screen-scraping

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

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

DownloadData

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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

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