C#获取网站的HTML代码不起作用

时间:2015-02-07 14:38:16

标签: c# html webclient

我一直在尝试下载某个网站的html源代码,从这个网址更加精确:

http://steamcommunity.com/market/search?q=&category_730_ItemSet[]=any&category_730_TournamentTeam[]=any&category_730_Weapon[]=any&category_730_Quality[]=tag_normal&appid=730#p10_price_desc

当我将此URL放入我的Webbrowser(Firefox)时,它会将我带到Steam-Market的第10页,因为在URL的末尾,它显示为“p10”。当我用12替换10时,它将我带到第12页。但是,当我尝试使用C#中的此代码下载第10页时,<​​/ p>

WebClient webClient = new WebClient();
string pageURL = downloadURL + getURLEnding(currentPage);

string html = webClient.DownloadString(pageURL);
var doc = new HtmlDocument();
doc.LoadHtml(html);

似乎忽略了那个网址。无论用什么数字取代10,我总能得到相同的结果。为什么?

1 个答案:

答案 0 :(得分:4)

你得到相同的结果,因为Steam的页面实际上是用AJAX获取结果,这意味着你想要的内容不在你得到的页面中。

以下是您在第10页时浏览器提取的网址(结果位于JSON format):

http://steamcommunity.com/market/search/render/?query=&start=90&count=10&search_descriptions=0&sort_column=price&sort_dir=desc&appid=730&category_730_ItemSet%5B%5D=any&category_730_TournamentTeam%5B%5D=any&category_730_Weapon%5B%5D=any&category_730_Quality%5B%5D=tag_normal

请注意此网址中的start参数,该参数是根据页码计算的。