0

私の最終的な目標は、自分のために簡単なプログラムを書くことです。Thinkpadオンラインストアを定期的にチェックし、基準を満たす製品が見つかった場合はメールを送信します。

私はいくつかの研究をしました。Webページのコンテンツを取得するには、コードを使用できます

    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();
    }

ただし、オンラインストアのWebサイトの場合、目的のページのURLを取得できません。ウェブサイトのURLはそのような形式です

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

結果をフィルタリングして、新しいWシリーズのラップトップのみを表示しますが、フィルターの変更はブラウザーのアドレスバーのURLに影響しません。私は何をすべきか?

4

1 に答える 1

2

どこにでも行くには、Lenovo WebサイトへのAJAX呼び出しを分析する必要があります(FirebugまたはChrome Developer Toolsを使用することをお勧めします)。

ここで、フィルター要求がに送信されていることがわかります

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 に答える