0

基本的に、他のデータベースから自分の SQL Server にデータをコピーするシステムを使用しているため、ニーズに合わせてデータをフォーマットできます。そのデータを使用してドロップダウンにデータを入力し、最終的に変数を使用して、ユーザーに表示したい行を返すことができます。

私がこれまでに遭遇したすべてのデータベースには、ドロップダウンのデータが格納される論理的な方法がありました。しかし今、私は別のものを持っており、論理的ではありません。

私がやりたいことは、ある程度論理的なドロップダウン自体を提供する既存の Web サイトを使用して、必要なデータを取得することです。そのドロップダウンは、選択後に複数選択ドロップダウンを埋めます。

最初のドロップダウンで各オプションを選択し、2 番目の複数選択ドロップダウンに入れられたデータを読みたいと思います。これを行う方法はありますか?

4

1 に答える 1

0

基本的にやりたいことは、Webスクレイピングです。同様のプロジェクトで、これは私がやったことです:

  1. http 要求を送信し、http 応答を受信できる .NET で使用可能なオブジェクトを使用します。私の場合、WebClient を使用しました。

        byte[] response;
        using (var client = new WebClient())
        {
            try
            {
                response = client.UploadValues(URL, "POST", postData);
            }
            catch (Exception ex)
            {
                // Log error here                  
            }
        }
    
  2. postData を参照してください。これはNameValueCollection、POST を実行したときにページによって送信されるデータを含む です。Fiddlerまたは同様のツールを使用して、含める必要があるデータを見つけます。ページが .NET Web フォームを使用している場合、サンプル リクエストを実行してそこから __VIEWSTATE 値を取得するなど、__VIEWSTATE に対して特別な処理を行う必要がある場合があります。postData のサンプルは次のとおりです。

        var postData = new NameValueCollection();
        postData.Add("__EVENTTARGET",  "");
        postData.Add("__EVENTARGUMENT", "");
        postData.Add("__VIEWSTATE", "");
    
  3. HtmlAgilityPackを使用して、投稿時に取得した応答を簡単に "解析" します。Xpath を使用すると、2 番目のドロップダウンで新しい項目を取得できます。

        var doc = new HtmlDocument();
        doc.Load(new MemoryStream(requestBytes));
        return doc;
    
于 2012-06-07T01:55:29.977 に答える