こちらは最新バージョンのOctoparse向けのチュートリアルガイドです。お使いのOctoparseが古いバージョンの場合は、最新バージョンへのアップグレードを強くおすすめします。最新バージョンは高速で、より使いやすく、強力になりました。まだアップグレードしていない場合は、こちらからダウンロードとアップグレードを行ってください。
クラウド実行環境では、ローカル環境で正常に実行されるタスクでもデータが返されない場合があります。この記事では、この問題を解決するいくつかの方法をご紹介します。
データ抽出できない主な理由は以下と考えられます。
1. 対象Webサイトが完全に読み込まれない、または目標データが読み込まれていません。
Webサイトの読み込み時間は、インターネットの状態とサイト自体によって異なります。ローカルコンピュータでWebサイトをテストすると、読み込み時間がクラウドよりも短くなる可能性があります。
そのため、目標データが見つからない場合は、「Webページを開く」アクションのタイムアウトを長くしてみてください。
もしタイムアウト時間を長くしても問題が解決しない場合、タスク設定でブラウザのユーザーエージェント(UA)を「Chrome 91 Linux」または「Safari 15.1」に変更してみると、ウェブページの読み込みに役立つかもしれません。
画面の右上隅にある「タスク設定」をクリックし、実行設定を選択します。
「Chrome 91.0 for Linux」または「Safari 15.1」を選択します。
また、IPプールを「JP」や「UK 2」などの他のオプションに設定することも試してみることができます。
2. クラウドIPは、頻繁なスクレイピングのためサイトへのアクセスに制限されています。
多くのサイトでは、スクレイピング防止技術が適用されています。アクセスできる時間を制限し、制限を超えるIPをブロックする可能性があります。
一部のWebサイトでは、ある地域からのすべてのIPをブロックすることさえできます。たとえば、日本のWebサイトがカナダで開かれない場合があります。
あまりにも頻繁にスクレイピングによってブラックリストに載っているIPは、抽出を遅くするための実行前の待機時間を設定することで解決できますが、現在のところ、OctoparseクラウドIPのすべてがアメリカに拠点を置くため、IP位置の制限は問題になります。残っています。
3. ウェブページにアクセスする前にCAPTCHAを解決する必要があります。
CAPTCHAは、ウェブサイトのスクレイピング対策として頻繁に使用される方法です。ウェブサイトは、住宅用IPではなくクラウドサーバーIPでアクセスしていることを検出する場合があります。多くの場合、最初のページを開くとCAPTCHAが直接表示され、スクレイピングプロセス全体が中断されます。クラウドでCAPTCHAを解決するのは難しいです。
私たちは一部の種類のCAPTCHAを自動的に解決することができます。このエラーが続く場合は、お問い合わせください。
4. 対象Webサイトへのログインに失敗しました。
Webサイトをスクレイピングするためにログイン手順を設定したり、クッキーをタスクに保存すると、ローカル抽出は完全に機能しますが、実行中に回転するIPが異なるためクラウドの抽出に失敗することがあります。
多くのWebサイトはログインする前に認証を求めます。キャプチャのような認証はクラウド抽出では解決できません。
保存されたクッキーは常に有効な時間を持ち、有効期限が切れたときには動作しなくなります。これを解決するには、更新されたクッキーを取得して保存するために適切なアクションを追加して、再度ログインのステップを実行する必要があります(クッキーを保存する方法をご覧てください)。
5. クラウドで開いたときサイトのHTML構造は変わります。
Octoparseでは、Webデータを抽出するには、実際にソースコード/ HTMLファイルからコンテンツを取得することです。データを抽出するには、HTMLコードを認識する必要があります。
クラウドでWebサイトの構造が異なり抽出に失敗した場合があります。
たとえば、アメリカのIPでSephora.comを開くと、そのページはSephora.usにリダイレクトされます。異なる地域のサイトのデザインはまったく異なります。したがって、Octopareクラウド抽出を使用する場合は、対象サイトはIPの地域に応じてリダイレクトされないことを確認してください。
Webサイトがリダイレクトされなくても、異なるネットワーク条件下でソースコードは別のブラウザで少し変更することができます。
クラウド抽出の失敗原因を特定する方法はありますか?
Octoparseのクラウド抽出プロセスは、ローカル抽出のように直接に表示されませんが、クラウドログがチェックできます。クラウドのスクリーンショットといくつかのエラーログが表示されます。
ログを開くためにこのアイコンをクリックしてください。
タスク実行に移動し、詳細をクリックします。
スクリーンショットとイベントログが表示されます。
また、クラウドで何が起こっているかをテストするための別の簡単な方法があります。それは、ウェブサイトのページ全体の外部HTMLコードを抽出することです。
以下の手順に従ってHTMLコードを抽出できます:
ステップ1. ウェブサイトのページを開いた後、どこかをクリックして「操作提案」が表示されます。例えば、このページの「Octoparse」をクリックします。
ステップ2. 「操作提案」パネルの下部にあるHTMLタグをクリックし、OuterHTMLコードを抽出します。
ステップ3. タスクをクラウドで実行し、HTMLコードを取得します。
ステップ4. 抽出されたデータをテキストファイルにコピーし、HTMLファイルとして保存します。
ステップ5. ChromeやFirefoxでHTMLファイルを開き、ウェブサイトのページがクラウド上でどのように表示されるか確認します。
ステップ6. 抽出の失敗原因を特定するために、ウェブページを確認します。
たとえば、ページが「アクセスが拒否されました」と表示される場合、クラウドIPがブロックされていることを意味します。ページが同じように見える場合は、HTMLコードを検査して正しいXPathを取得する必要があります。