- webスクレイピングで在庫連動したい
- こんなアイデアのロボット作れますか?
- ある分野の商品情報を集めたい
- お天気情報、FXや株価を自分のブログに表示したい
- スポーツなどのリアルタイム情報を知りたい
など、
最近、このHPを見たと、ご連絡をいただくことが多くてびっくりしています。
さらに、SEO業者から
- サテライトサイトを作って、アクセスを増やしましょう
- ライターが特別にいくつかのキーワードでページを作成します
とか、電話営業をしてくるんです。
同じ系列なのに、ほぼ同じサービスなのに、年間で30万円ほどの開きがあります。
こんな話はさておいて、
webスクレイピングとは、
ウェブスクレイピング
ウェブスクレイピング(Web scraping)とは、ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと。ウェブ・クローラー(Web crawler) あるいはウェブ・スパイダー(Web spider)とも呼ばれる。 通常このようなソフトウェアプログラムは低レベルのHTTP(Hypertext Transfer Protocol)を実装することで、もしくはInternet ExplorerまたはMozilla FirefoxなどのWebブラウザを埋め込むことによって、人間によるWWWのブラウジングをシミュレートする。
Googleなどの検索ロボット(クローラー)が、
あなたのHPやブログの情報を収集してくれているのも、
このwebスクレイピングの技術なのです。
当方では、主に、
- WindowsのVB.net、Microsoft ExcelやMicrosoft Access、FileMaker Proでプログラミング
- インターネット上のサーバーにPHPプログラミング
の2通りでのプログラミングを行うことが多いです。
パソコンにインストール、または、実行させるタイプでは、
プログラムできるソフトであれば、そのソフトの中に組み込むこともできます。
例えば、FileMakerでも、JavaScriptとFileMakerの命令を駆使することで、
FileMakerのデータベース上に保存している、サイトのアカウントIDとパスワードで、自動ログインを行って、所定の動作を行ったり、
また、その会員制サイトのデータを読み取って、FileMakerのデータベースに保存して、自分だけの抽出や検索ができる、オリジナルデータベースとして活用することもできます。
1リクエストを受信後に、5~10秒間の間隔をおいて、次のリクエスト(別のURLへ移動)するなど、常識の範囲内の配慮を行っている。
ただ、FXなど24時間稼働させたい場合、
無停電電源装置や、
パソコンを熱暴走を防ぎ安定して稼働させるために、
エアコンで室温を25℃以下にしておくことが、
実は、重要になってきます。
夏の暑い時期は、
電気代が結構かかってきますね。
サーバー設置のタイプでは、
cronと呼ばれる、タイマー制御でプログラムを呼び出して、
自動的に処理を実行させることができますし、
パソコンの電源をずっと入れっぱなしにしなくてもいいので、
すごくエコであり、必要な時に、インターネット経由でデータを参照できるので、
旅行先など自宅以外でも、閲覧や操作が可能です。
また、
WindowsのVPS仮想デスクトップという、
レンタルサーバー会社のサービスを利用すると、
遠隔操作でサーバー会社にある、自分だけの仮想的なパソコンを操作できますので、
そのWindowsVPSに、24時間365日稼働するプログラムを実行させるのも、もう一つの手法です。
だいたい、月額900円ぐらいから、
メモリ2GBでも十分に活用できますよ。
レンタルサーバー会社の非常に高速で安定した、バックボーン回線(インターネット回線)でインターネットにせつぞくされています、
インターネット上の情報をwebスクレイピングするわけですから、
「Windows VPS FX」と検索すると、
最近では多くのレンタルサーバー会社からサービスが提供されています。
そのようなプランを
いろんなwebサイトを運営していると、
GoogleやBingなどの検索エンジンのbot(クローラー)とは別に、
このようなwebスクレイピングで、当方のサイト情報を取得するクローラーが、オランダやロシア、中国、ベトナムなど様々な国より、1秒間に何度もアクセスを行い、サーバーの表示が遅くなるほどの負荷をかけられることがあります。
kakaku.comのような、いくつものサイトを縦断検索できるサイトを作ろうとしているのかもしれませんが、相手のサーバーがダウンしてしまっては、集めた情報を活かしきれないと思います。
1秒間に数ページにアクセスしたり、
1分以上に渡り連続でアクセスを占有してしまわないような、
配慮が必要になってきます。
そこで、「webスクレイピングのコツ(勘所)」ですが、
メモリを大目に積むことです!
PCなら、メモリを追加し、
サーバーサイドなら、
/etc/php.iniの
memory_limit = 256M
または、
プログラムに、
ini_set(‘memory_limit’, ‘256M’);
と、メモリ使用量を変更してください。
そして、取得したデータは、必要な分だけメモリに格納し、
不要なデータはすぐに解放!
『なんだ、そんなこと!』という人もいるかもしれませんが、
ページを取得し解析する処理時間を短くする積み重ねは、
後々大きく影響してきます!
スクレイピングして、
そのページに使われている画像をまとめて取得など、
スクレイピング先のURLページのHTML文を解析するだけでなく、
ログイン後に、目的のページに移動することや、
商品一覧ページから、商品詳細ページをスクレイピングするのが、
目的の場合もきっとあるでしょう。
同時に取得する画像データを保存したりと、1アクションで複数ページをアクセスするのが、
通常だと思いますので、
一度読み取ったHTMLを一時ファイルに書き出しておいたり、
ループ処理内の変数の解放などの工夫をします。
当方は、各種の自動プログラムを、
PC上やインターネットのサーバー上で稼働する、様々なタイプでの製作実績があります。
どこにご相談をしたらいいのか、
ホームページを作れる人を知っているけど、
特殊がゆえに、対応してくれる会社がなかなか見つからないと思います。
まずは、お問い合わせください。
予算や稼働環境などに応じて、
ご提案させていただきます。
お問い合わせフォーム
- アイデアがあるが、システムを構築するならどれくらいの費用になるのか知りたい
- オンラインショップの決済プログラムを依頼したい
- パソコンのことがわからないが、お店の伝票整理を効率化したい
- 本店と支店とのデータを共有したい
- オンラインショップの受注メールが届いたら、すぐに在庫を確認したい(在庫連動させたい)