Excel にはすでに Web スクレイパーが組み込まれており、それを私はそれを使用しています

Excel にはすでに Web スクレイパーが組み込まれており、それを私はそれを使用しています


Web スクレイピングというと、開発者やハッカー専用のもののように聞こえるかもしれませんが、手動で何もコピー アンド ペーストすることなく、Web サイトから直接 Excel にデータを取り込むだけの簡単な作業です。ブラウザーとスプレッドシートを切り替える代わりに、Excel に留まり、URL を貼り付けると、ほぼ即座にデータがワークブックに表示されます。

複雑に聞こえるかもしれませんが、Python、ブラウザ拡張機能、またはコーディングの知識はまったく必要ありません。 Excel アプリで Power Query (Excel 2016 以降を使用している場合に必要) にアクセスできる限り、単純な製品テーブルからライブ API フィードまで、ほぼすべてのものを取得できます。

Excel にはすでに Web スクレイパーが組み込まれており、それを私はそれを使用しています

何年も無視していた Excel ツールを使用して、インポートされた乱雑なスプレッドシートを数分でクリーンアップしました

インポートされたスプレッドシートについて心配する必要はもうありません。

Power Query を使用してテーブル、ファイル、API をスプレッドシートに取り込む

コードや外部スクレイピングツールは不要

Excel でのサイト スクレイピングの最適なエントリ ポイントは次のとおりです。 ウェブから Power Query のオプション。このオプションは次の場所にあります。 データの取得と変更 グループ化 データ タブ URL を貼り付けると、Excel はページ上のテーブルを自動的に識別しようとします。これが機能すると、数回クリックするだけでクリーンで更新可能なデータをスプレッドシートに取り込むことができます。もちろん、サイトが常に協力するとは限りません。

サイトのデータがテーブルに整然とした形式で表示されない場合、Power Query の 例を使用してテーブルを追加する 機能は引き続き必要なものを抽出するのに役立ちます。この機能を使用すると、自動検出に完全に依存するのではなく、必要な種類のデータを Excel に提示できます。タイムライン名やそれに対応する日付範囲などの値の例を入力することも、ドロップダウン候補から値を選択することもできます。次に、Power Query はパターン認識を使用してページをクロールし、一致するデータを自動的に取得します。

このプロセスは、インターネットからの標準的なインポートと同じ方法で開始されます。の上- データの取得と変更 グループ化 データ タブで選択 ウェブから表示されるダイアログボックスにWebページのURLを入力し、「OK」をクリックします。 Excel で検証方法の選択を求められた場合は、 匿名 通常、これはデフォルトのオプションであり、クリックするだけで済みます。 接続する

使用する 例を使用してテーブルを追加する左下隅に目を向けてください ナビゲーター ページをロードした後のウィンドウ。ボタンをクリックすると、インタラクティブなレイアウトが開き、空のテーブルの隣にページのライブ Web ビューが表示されます。そこから、サンプル値を列に直接入力し、必要に応じて列を追加できます。この機能は最大 128 文字までの値でのみ機能するため、長い説明よりも名前、価格、ID、日付などの短いフィールドに適していることに注意してください。

世代の詳細を示す 1 つの列と、年の範囲とその説明を含む別の列が必要だったので、Wikipedia の世代ページでこれをテストしました。別の列を追加した後、「失われた世代」と「1883 年から 1900 年」と入力し、ドロップダウン メニューから一致する候補を選択しました。最大の世代に対してこのプロセスを繰り返したところ、Excel によって残りの世代が自動的に入力されました。その後、テーブルをワークシートに挿入するだけで済みました。

6 つの値が事前に入力されている Microsoft Excel の例の[テーブルの追加]ダイアログ ボックス。
エイダによるスクリーンショット

Power Query は、標準の HTML ページをスクレイピングするだけではありません。 GitHub でホストされている CSV ファイルなどのファイル URL に直接接続したり、内部システムまたは XML フィードから JSON をエクスポートしたりすることができ、Excel はコンテンツを自動的に解析して構造化テーブルを作成します。また、認証されたアプリケーション プログラミング インターフェイス (API) 接続もサポートされているため、別のスクレイピング ツールを必要とせずに、API キーを必要とするサービスを操作できます。

Power Query は内部的に、接続先のソースの種類に応じて 3 つの異なる関数に依存しています。

ウェブコンテンツ

この関数は、CSV や JSON API などの非ブラウザー コンテンツを処理し、最も広範な検証をサポートします。

Web.BrowserContents

これは、Microsoft Edge の WebView2 エンジンに基づいて構築された、HTML ページの最新のデフォルトです。

ウェブページ

これは Internet Explorer に組み込まれている古い機能で、互換性のためにまだ存在していますが、段階的に廃止されています。

最新のワークフローでは、主に Web.Contents と Web.BrowserContents を使用して作業することになります。

よりスマートな Web クエリの構築

動的 URL、スプレッドシート主導のパラメータ、およびうまく動作しないサイトのためのいくつかのトリック

Microsoft Excel の[Web から詳細設定]ダイアログ ボックス。
エイダによるスクリーンショット

固定 URL から取得した静的クエリは非常に便利ですが、動的クエリの構築を開始すると、Power Query の柔軟性がさらに高まります。 1 つのパーマリンクに依存する代わりに、別個の部分から URL を作成し、別のデータが必要なときにいつでもパラメータを入れ替えることができます。たとえば、クエリを毎回再構築せずに、さまざまなトピックの情報を取得したい場合は、Power Query 内で URL を直接コンパイルできます。

の上- ウェブから ダイアログ ボックスで、 高度な 代わりにオプション 基本的な。そこから、URL パーツ セクションを使用して URL をパーツごとに構築します。最初のテキスト ボックスに、スキームやパスなどの URL の定数部分を入力します。

https://en.wikipedia.org/wiki/

次に、選択できます パーツを追加 クエリ セグメントまたは変数値 (特定の世代や国など) の追加セグメントを作成します。たとえば、パート 2 の URL を、値 Generation を持つ Topic という名前のパラメータに設定し、パート 3 を #Social_generation に設定できます。クエリを作成すると、Excel によって最終 URL のライブ プレビューが生成されます。

選択後 データ変更 ナビゲーション ウィンドウで Power Query エディターに入り、これらのパラメーターをより効率的に管理できます。下に タブで選択 パラメータの管理 すべてのクエリで再利用できる編集可能な値を作成します。つまり、後でトピック パラメーターを世代からミレニアル世代に変更すると、代わりにワークシート内のテーブルがその新しいページのデータで自動的に更新されます。

Microsoft Excel の Power Query の[パラメーターの管理]ダイアログ ボックス。
エイダによるスクリーンショット

スプレッドシートに保存されている値にクエリを直接接続することで、これをさらに推し進めることができます。これは、医療提供者の NPI 番号、顧客 ID、製品 SKU などの識別子の長いリストがある場合に特に効果的です。 Power Query エディターで、次の場所に移動します。 列を追加する タブをクリックして選択します カスタム列。そこで、ベース URL とシート内の列から取得した値を組み合わせる数式を書くことができます。

Microsoft Excel の Power Query の[カスタム列]ダイアログ ボックス。
エイダによるスクリーンショット

たとえば、人口統計コホートや文化世代などの社会学用語を含む列がある場合は、次のような数式を使用できます。

=Web.Page(Web.Contents("https://en.wikipedia.org/wiki/" & Text.Replace(Text.Trim([Column1]), " ", "_"))){0}[Data] 

これまでにサイトに接続したことがない場合は、資格情報またはプライバシー設定を調整する必要がある場合がありますが、それが完了すると、セットアップは正常に機能するはずです。一度に 1 つずつクエリを作成する代わりに、スプレッドシートの列を参照することで、一度に数百の値のデータをフェッチできます。

それでも Web ページから必要な正確なデータを取得できない場合は、Chrome (またはその他の) ブラウザーの開発者ツールが役に立ちます。[ネットワーク]タブを開いてページをリロードし、バックグラウンドでリクエストが読み込まれるのを確認します。最近のサイトの多くは、内部 JSON API を使用してページにデータを設定します。多くの場合、ページ自体よりも操作がはるかに簡単です。次のようなエンドポイントが表示される場合があります。

https://en.wikipedia.org/w/api.php?action=parse&page=Generation&format=json

公開された Web ページをスクレイピングするのではなく、Power Query をこのような API エンドポイントに直接接続すると、通常、より速く、よりクリーンで、より信頼性の高い結果が得られます。

何も傷つけたことがないとしても、学ぶ価値はあります

Power Query Web Connector は完全にサポートされ、継続的に更新される機能であり、Microsoft が何年もかけて改善してきました。本格的な Web スクレイピングを一度も行ったことがない場合でも、その仕組みを学べばかなりの時間を節約できます。

競合他社の価格を追跡したり、公的記録を取得したり、午後の時間を費やしてしまうデータ収集の自動化を行っている場合でも、基本を学ぶために 1 時間を費やすことは本当に価値があります。その投資に対する収益は、予想よりもはるかに早く現れる傾向があります。

エクセルのロゴ

オペレーティング·システム

Windows、macOS

デスクトップブラウザがサポートされています

すべてウェブアプリを通じて

開発者

マイクロソフト

無料トライアル

1ヶ月

価格モデル

サブスクリプション

iOSに対応

はい

Microsoft Excel は、データの整理、分析、視覚化に使用される強力なスプレッドシート アプリケーションです。数式、関数、ピボット テーブル、グラフをサポートし、複雑なデータ セットを効率的に処理します。ビジネスや教育で広く使用されている Excel は、コラボレーション、自動化、リアルタイムのデータ分析のために他の Microsoft 365 アプリとも統合されています。


Leave a Reply

Your email address will not be published. Required fields are marked *