0

我的最终目标是为自己编写一个简单的程序。它应该定期检查 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();
    }

但是对于在线商店网站,我无法获得所需页面的 url。网站网址是这样的格式

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

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

4

1 回答 1

2

要到达任何地方,您应该分析对联想网站的 AJAX 调用(使用 Firebug 或 Chrome 开发者工具是一个好的开始)。

在那里你看到过滤器请求被发送到

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

那么您需要POST一些表单数据到该 URL 以获得过滤结果(以 HTML 形式返回,您必须以某种方式对其进行解析)。

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

于 2012-10-22T22:00:40.923 回答