0

国内のすべての DOT # (Dept. of Trans.) のリストがあります。これらの会社のそれぞれの保険の発効日を知りたいです。http://li-public.fmcsa.dot.gov --> 「続行」 --> ドロップダウンから「キャリア検索」を選択し、「実行」をクリックすると、検索フォームが表示されます (それがこの画面に到達する唯一の方法です)。

そこから、DOT # X (例として 61222 を使用) を入力すると、別の画面に移動します。「レポートを HTML で表示」をクリックすると、一番下に「有効/保留中の保険」が表示されます。そのページから「発効日」を取得し、スプレッドシートの、既に知っている DOT # X の横に貼り付けたいと思います。

私のリストにある何千もの DOT # のうち、すべてがこの Web サイトに登録されているわけではありません。

これは、マクロまたは Excel Web クエリで実行できますか? 私はおそらくまったくの初心者のように聞こえるかもしれませんが、私が得られる助けに感謝します.

ありがとう

4

2 に答える 2

1

それできますか?率直に言って、その処理を行っている間、スプレッドシートをロックすることができたとしても。そして最後に、途中でエラーをどのように処理しますか?

クライアント向けのアプリケーションではこれを行いません。これは、より制御された環境で処理を実行し、情報を収集できるサーバー側アプリで行うことのように聞こえます。次に、Excelスプレッドシートでそのアプリにクエリを実行し、一挙に情報を取得できます。エラー処理ははるかに簡単で、何千ものWebサイトでExcelが機能する理由をExcelで見つめていることになりません。それをエレガントに行うために構築されたわけではありません。

私が説明しているWebサービスを何で書いていますか?まあそれはあなたの好みに依存します。私は、Ruby on Railsで記述します。これは、タスクのスクレイピングの側面を簡単に処理でき、データを簡単にレポートできるためです。しかし、それは本当にあなたが最も快適にコーディングできるものにフォールバックします。

于 2013-03-08T04:24:24.937 に答える
1

これは間違いなくできます。しかし、Excel は解析を行うのに最適なツールではありません (私はそれを実行しましたが、人々は不可能だと言いました - 非同期の Windows API 呼び出しを使用して実行できます。頑張ってください...)

あなたがしなければならない最初の質問は、サイトが動的かどうかです。その場で結果を生成していますか?もう 1 つの質問は、一貫性のある URL 規則ですか? (つまり、結果をブックマークして、サイトにログオンするだけで、別のセッションでそれらに戻ることができますか...)

サイトが静的であるか、一貫した URL クエリ メカニズムを備えている場合 (HTML では、Web クエリは "POST" フォームではなく "GET" です...)、Python のような優れたパーサー指向の言語を使用できます。 Web ページにアクセスするライブラリを使用する。例はGoogleにたくさんあるはずです。すべてのデバッグが完了し、確実に動作するようになったら (サイトにアクセスできない場合に状況をインテリジェントに報告することもテストします。そのために一時的にネットワーク接続を切断します...)、Excel マクロから次のようにシェルできます。 Python スクリプト。秘訣は、Excel のバニラ シェルはシェル化されたコマンドをブロックせず、非同期で実行されることです。再度 Google を使用すると、Excel からシェルへ、取得タスクを同期的に実行できる Windows API 呼び出しを見つけることができます (完了するまでブロックしなかった場合は、

このデザインのポイントがわかりますか?基本単位。解析にバグがある場合は、CSV を見るだけで簡単に判断できます。そして、特殊化を利用しています。解析用に設計されたプログラミング言語(Pythonなど)を使用しています。VBA は実際には解析言語ではありません。

静的な Web ページではなく、一意のエントリを作成する必要がある動的な Web ページの場合はどうなるでしょうか? 次に、Excel マクロから奇妙な Windows API 呼び出しを使用して実行する以外に、Greasemonkey または C# を使用して動的解析スクリプトを作成できます。Greasemonkey は Firefox 用のプラグインで、Javascript を使用して Web サイトの対話をスクリプト化できます。それはかなり直感的です。このアプローチを採用した場合、事前定義された Greasemonkey スクリプトが構成されているページの Firefox ブラウザーにシェルできます。繰り返しますが、Greasemonkey はデータのテキスト ファイルを生成でき、後で簡単にデバッグできます。私が聞いた別のオプションは C# です。Microsoft 固有なので試したことはありませんが、多くのショップがそのようにしているのを目にします。HTMLunit と呼ばれる Java 解析パッケージもあります。しかし、Web ページで Javascript イベントをエミュレートしようとすると、壊れていることがわかりました。その他の HTML パーサーとしては、Jerry と Cobra があります。そしてSeleniumという新製品があります。実際のブラウザを使用して動作するため、Greasemonkey が最も信頼できることがわかりました。一方、Selenium を除いて、これらの他の製品はブラウザーの仮想複製を作成しますが、残念ながら、そうしないことがよくあります。Web ページ上にあるかもしれない Javascript をわざわざ複製しようとさえしない人もいます (これは、多くの場合、Web サイトのページがどのようにレンダリングされるかの肉とジャガイモになる可能性があります!) これらの他の製品は、ブラウザーの仮想複製を作成しますが、残念ながら、多くの場合失敗します。Web ページ上にあるかもしれない Javascript をわざわざ複製しようとさえしない人もいます (これは、多くの場合、Web サイトのページがどのようにレンダリングされるかの肉とジャガイモになる可能性があります!) これらの他の製品は、ブラウザーの仮想複製を作成しますが、残念ながら、多くの場合失敗します。Web ページ上にあるかもしれない Javascript をわざわざ複製しようとさえしない人もいます (これは、多くの場合、Web サイトのページがどのようにレンダリングされるかの肉とジャガイモになる可能性があります!)

楽しむ。これはプールの最深部ですが、それはあなたを忙しくし、有益な雇用を維持するものです.

于 2013-03-08T22:43:39.660 に答える