2016-09-03 1 views
0

私が掻き取ろうとしているウェブサイトのホームページには、4つのタブがあり、そのうちの1つは「[Number] Available Jobs」と表示されます。私は[数値]値を削ることに興味があります。 Chromeでページを調べると、<span>タグで囲まれた値がわかります。ダイナミクスをロードするページから値を削る方法は?

enter image description here

しかし、私は直接、ページのソースを表示すること<span>タグで囲まれたものは何もありません。私は、Python requestsモジュールを使用してHTTP GETリクエストを作成し、正規表現を使用して返されたコンテンツから値を取得することを計画していました。コンテンツに必要な数が含まれていない場合、これは明らかに不可能です。

私の質問は以下のとおりです。

  1. ここで何が起こっていますか?値を動的に ページに読み込んで表示し、HTMLソース内に表示されないようにするにはどうすればよいですか?

  2. 値がページソースに表示されない場合は、 にアクセスするにはどうすればよいですか?

+0

セレンを使用することができます:https://pypi.python.org/pypi/selenium – Javier

答えて

0

1.A値はAjaxで動的にロードすることができ、AJAX負荷が非同期的にそれはあなたがDOMを取得する際の要素は、AJAXを搭載した理由です、AJAXをレンダリングするために、サイトの残りの部分は待たないことを意味しそこには現れません。内容は、おそらくJavaScriptを使用して生成された後、ページのソースに表示されない場合は、here a tutorial

2

をセレンを使用する必要があり、動的コンテンツをこする

2.For。たとえば、サイトにはジョブをリストするREST APIがあり、JavascriptコードはAPIからジョブを要求し、それを使用してDOM内のノードを作成し、使用可能なジョブにアタッチすることができます。それは単なる可能性の一つです。

この情報をスクラップする方法の1つは、javascriptの仕組みを理解してPythonスクレイパーを同じようにすることです(たとえば、使用している単純なREST APIがある場合は、その同じURL)。しばしばそう簡単ではないので、セレンのようなjavascript対応ブラウザを使用して掻き取りを行うこともできます。

最後に言及したいことは、that regular expressions are a fragile way to parse HTMLですが、一般的にはBeautifulSoupのようなライブラリを使用することをお勧めします。

0
  1. 動的に負荷がかかるデータの場合は、ネットワーク内のxhrリクエストを探して、そのデータを生産性の高いものにすることができますか?
  2. あなたはjantを想像することができます。それはヘッドレスブラウザであり、動的にロードされたコンテンツでそのページのHTMLをキャプチャします。
関連する問題