-->

【KNIME】(ナイム)簡単スクレイピングしたい①!?Webpage Retriever の使い方、ノーコードスクレイピング【ノード紹介】

2022/03/17

Knime

t f B! P L

この記事の概要

KNIME(ナイム)でスクレイピングをする方法を解説。
Webpage Retriever(ウェブページリトライバー)とXpath(エックスパス)
用いたスクレイピング方法を解説。
「KNIME(ナイム)って何?」というかたはこちらをクリック
そのほかのスクレイピング方法についてはこちらをクリック


スクレイピングとは?

スクレイピングって?
と思う方が多いかもしれませんが
スクレイピングは「抽出」することを指します。
抽出とはすなわち必要な情報を抜き出すということですね。
スクレイピングを行う人またはプログラムを「スクレイパー」と言います。

スクレイピングとよく似た言葉として
クローリングというのがあります。
クローリングの意味は「巡回」です。
クローリングを行う人またはプログラムを「クローラー」と言います。

つまりスクレイピングは何か?というとざっくり言うと
複数のwebページに自動でアクセスし必要な情報を集めることです。
Webページの複数閲覧を自動化できるといったところが分かりやすいでしょうか?

スクレイピングって何に使うの?

スクレイピングの用途としては様々なウェブページをめぐって情報を集めることです。
データ収集などに役立てられており、Yahoo!やGoogleなどの検索エンジンでも利用されています。


スクレイピングを行う際の注意事項

スクレイピングやクローリングはやり方を間違えるとサーバーに過度の負荷を与えてしまう場合や、著作権侵害、利用規約違反に反する可能性があるので注意が必要です。

スクレイピングやクローリングにより損害が発生した場合でも、当ブログでは責任を一切負いません。
詳細は下記ページに詳しく書いてあるのでご確認ください。

Knimeでスクレイピングを行う方法

Knimeって何?という方は?

Knimeの基本的な説明については下記の記事をご覧ください。
本ページはKnimeの使い方やできること、などについて説明しています。Knimeはエクセルと同じように表計算ができる無償ソフトウェア エクセルと違ってVBA記述など不要でマクロをどうさせることが来ます。 ワークフローと呼ばれるカラフルな四角いマークと矢印をつなぐことで動かす

スクレイピングするためのワークフロー

Webpage RetrieverXpathのノードを組み合わせて使います。
必要な情報を抜き出すのにColumn splitter(filter)もあったほうが良いと思います。
ワークフローは下記のような接続になります。

Webpage Retrieverの使い方



KnimeではWebpage Retrieverというノードを使ってスクレイピングを行います。
Webpage Retrieverには入力の矢印がありますが特に接続しなくても動きます。

Webpage Retriever のConfigureの設定画面は下記のとおりです。
まずはGeneral Settingから
項目ごとに解説してきます。
URL:
スクレイピングするページのURLを入力します。

URL Column:
Tableデータを入力した場合、データの中からスクレイピングするURLを選択します。

Delay(ms):
遅延時間です。
複数ぺージをスクレイピングする場合、1ページ目と2ページ目の処理の間に
待ち時間(遅延時間)を発生させます。
遅延時間0の場合、高速で何度もページにアクセスするため
DoS攻撃とみなされて違法行為に当たる可能性があります。
アクセス先のサーバーがどの程度負荷に耐えられるかによりますが
遅延時間は2000(ms)以上を推奨します。

Concurrency:
同時処理数のことです。
基本的にスクレイピングは1処理で1ページ行います。
Concurrencyを2にすると1処理で2ページ分スクレイピングできるので、処理時間が短くなります。
しかしサーバー側にとっては2倍の負荷がかかるため
むやみに数字は増やさないほうが良いです。
推奨値は1です。

Timeout(s):
タイムアウト時間です。
URLにアクセスしても応答が返ってくるまで時間がかかる場合があります。
タイムアウト時間を過ぎても応答が返ってこない場合
接続中断とみなして応答を待たずに処理を終了します。
私はあまり気にしないのですがデータを漏れなく拾うのであれば
10(s)ぐらいが適当かと思います。

Output column name:
出力するXMLのカラム名称です。

Output as XML:
出力をXML形式化string形式か選べます。
チェックを入れるとXML、チェックを外すとstring形式で出力されます。

Replace relative URLs  with absolute URLs
チェックを入れると相対URLを絶対URLに置き換えます。
基本的にはチェックを入れるのが良いです。


続いてAuthentication画面

URLにアクセスする際に特にログインが不要なサイトの場合はNoneでOKです。
ログインが必要なサイトの場合はBasicまたはDigestを選択し
UsernameとPasswardをそれぞれ入力すれば
勝手にログインしてアクセスするようになります。

Error handling画面

いろいろな項目がありますが基本的にアクセス中にエラーが起こった場合の
対処法を選択するだけです。
3項目ともOutput missing valueを選択でよいと思います。

Fail node executionを選択すると
途中で何かエラーが起こった場合は処理を中断してNodeの実行結果をFailとします。
出力は何も出ません。
それまで正常に処理できていたXMLも出力されません。

Output missing valueを選択すると
エラーが起こった場合は実行中のURLアクセスをスキップして次のURLにアクセスします。
実行の結果、エラーが起こったURLには出力は空ですが
正常に処理が完了したURLにはちゃんとXMLが出力されます。

Output additional column with error cause
にチェックを入れるとエラーが行ったときに何が原因でエラーが起こったか
新たにカラムを作って出力されます。


実際に使ってみる

デフォルトで入力されているGoogleのトップページを
スクレイピングしてみましょう。
Webpage Retrieverを配置してそのままExecuteで実行完了です。
Resultを見てみると下記のようにXMLが出力されています。




なるほど!これでXMLを出力できるわけですね!

あとがき

どうもシャイン社員です!

このブログに登場するキャラクターを紹介します。
Knimeの説明に入る前に当ブログのキャラクターを紹介していきます。
シャイン社員
当ブログの管理人。
某メーカーで働く30代電気エンジニア。
専門外ながらKnime歴は1年未満。
様々なデータ統計から分析を実施している。
趣味はキャンプ、スポーツ。
ともやん
シャイン社員の後輩。
面倒くさがりな性格ですぐ会社を辞めようとする。
エクセルで様々な仕事をしようとするが難しくて断念。
Knimeと出会いシャイン社員に使い方を教わっていく。
趣味はゲームとアニメ、映画を見ること。

ようしきた…。FANTOM-O6発売間近!
これは次期「バン〇り」や「けい〇ん!」とかのタイアップでオタク仲間が買いそうだな
オタク仲間に「これ次のアニメに出るんじゃね?」って教えてあげよう。
返信RTっと
(えっ10万円以上する楽器を買えちゃうの?
自分で弾くわけでもないのに?
オタクの財力ってすごいのね…)

このブログを検索

注目の投稿

【KNIME】(ナイム)最強の表計算マクロソフト!KNIME(ナイム)のご紹介!使い方は?できることは?

この記事の概要 KNIME(ナイム)は表計算、マクロ動作を主機能とするフリーソフト。 エクセルと同等の機能を有しており、行列計算やグラフ描画可能。 ノードと呼ばれる箱を線で繋ぐことで計算処理を行う事が出来るため 関数名などを覚える必要はなく、処理の内容が分かりやすい。 Pytho...

ブログ アーカイブ

スポンサー広告

スポンサー広告

QooQ