2012-03-30 4 views
3

私は1つのウェブサイトのデータをクロールしています。私はページ上のすべてのコンテンツにアクセスできます。しかし、ページ上の一部のデータは、いくつかのアイコンの上に置かれた後、ツールチップとして表示されます。だから私はそのデータも必要です。任意のクローラで可能ですか?クローラのPHPでホバーデータ(ajax)を取得する方法

私はPHPとsimplehtmldomを解析/クロールのページに使用しています。

+0

tp crawle動的データが必要ですか?アヤックスのような反応? – safarov

+0

ホバリング時にajaxによって表示されるHtmlデータは、「」にあります。私はそのデータを解析したい。 –

答えて

4

ホバーデータはクローラーによって取得できません。

クローラは、Webページをクロールし、データ全体(HTMLページソース)を取得します。私たちがURLを押すとすぐに見ることができるビューです。マウスを動かすには、ページ上のHTML属性(手動アクション)を必要とします。現在のところ、クローラは、私の知る限り、ホバリングとそのデータを取得するためのアクションを行いません。したがって、クローラによってホバーデータを取得することはできません。

2

1つの可能性は、javacript interpeter(このhttp://php.net/manual/en/book.v8js.phpをよく見て、必要なものかもしれません)を使用してjavascriptを実行してから、必要な要素にホバーイベントを発生させるためのJavaScriptコードを追加します。

ページにAJAXを使用して必要なフィールドを入力する場合は、Firebugのようなツールを使用してAJAX呼び出しを表示し、コード内で再作成して不足しているDOM要素を埋め込むことができます。

もう1つの方法は、クローラを再考し、おそらくブラウザベースのクローラを使用することです。これは私が多くの経験を持っていないものですが、私は他の人がこれをやったと確信しています。

1

Seleniumを調べることをおすすめします。私は何度も使ってきましたが、間違いなく行うことができますonmouseover

+0

データベースにデータを挿入するにはクローラが必要です。クローラではありません。 –

0

単純なPHPカールとのユーザーのやりとりが必要な動的ソースコードを入手することはできません。ただし、PhantomJSを使用すると、ホバー状態を達成し、将来のページのAjaxロードを取得できます。学習曲線があり、サーバーにnode.jsをインストールして、権限があるかどうかを確認する必要があります。

PhantomJSあなたのコマンドでページを訪問するヘッドレスWebkitブラウザであるため、onmouseoverまたはdynamic ajaxコンテンツを取得できます。

関連する問題