如何获取此网页的网址

时间:2012-10-22 21:46:23

标签: c#

我的最终目标是为自己编写一个简单的程序。它应定期检查Thinkpad在线商店,如果发现任何产品符合我的标准,将向我发送电子邮件。

我做了一些研究。要获取网页的内容,我可以使用代码

    WebRequest request = WebRequest.Create("http://www.google.com");
    WebResponse response = request.GetResponse();
    Stream data = response.GetResponseStream();
    string html = String.Empty;
    using (StreamReader sr = new StreamReader(data))
    {
        html = sr.ReadToEnd();
    }

然而,对于在线商店网站,我无法获得所需页面的网址。网站网址的格式为

  

http://outlet.lenovo.com/SEUILibrary/controller/e/outlet_us/LenovoPortal/en_US/catalog.workflow:expandcategory?current-catalog-id=A4A41B4CA13D4754AE2FB1EBF357&current-category-id=908B184AED4F29502E6EB3E1E76AFC13&menu-id=products&ref-id=products#/?page-index=1&page-size=10

我将结果过滤为仅显示New W系列笔记本电脑,但过滤器更改不会影响浏览器地址栏中的网址。我该怎么办?

1 个答案:

答案 0 :(得分:2)

要获得任何地方,您应该分析对Lenovo网站的AJAX调用(使用Firebug或Chrome开发者工具是一个良好的开端)。

在那里,您会看到过滤器请求被发送到

http://outlet.lenovo.com/SEUILibrary/controller/e/outlet_us/LenovoPortal/en_US/catalog.workflow:GetCategoryFacetResults?q=1

然后你需要POST一些表格数据到那个URL,以获得过滤结果(以HTML格式返回,你必须以某种方式解析)。

所有这一切都可以通过分析AJAX调用来完成。