2012-02-17 15 views
0

iframeの内容をpythonで取得する必要があります。iframeの内容をPythonでロードする

Webページが読み込まれると、リクエストを送信し、応答内のiframeの内容を取得します。 BeautifulSoupを使ってデータを取得すると、最初の空のiframeの内容が表示されます。 iframeがロードされていない可能性があります。

iframeのHTMLコンテンツを手助けしてください。

ありがとう....

答えて

1

最初のリクエストを行いますか。 iframeのソースURLを取得し、iframeの内容を取得する別のリクエストを行います。リクエストに変数を渡す必要があるかどうかを確認してください。

Beautifulsoupは、リクエストから取得したコードを実行しません。ページの複雑さによっては、ページがブラウザに読み込まれたときに起こることをエミュレートすることができます(javascriptの構文解析やその情報の使用など)。

Ex。

<html> 
    ... 
    <script> 
     $(document).ready(function() { 
      $("iframeID").src = "http://addr.com/page.html" 
     }); 
    </script> 
    ... 
    <iframe id="iframeID"/> 
    ... 
</html> 

この場合、iframeのソースを取得することは不便ですが、可能です。 JavaScriptが奇妙ですばらしいことをするならば、これはもっと難しくなります。 javascriptが別のファイルにある場合は、そのファイルを取り出して取得する必要があります。

状況が複雑すぎる場合は、別のスクレイピングソリューション(JavaScriptエンジン全体を実行するソリューション)を見て、私はもっと複雑なものを使用していません。

+0

実際にそのフレームにはいくつかの非表示フィールドがあり、htmlページが読み込まれると非表示フィールドが送信元URLに送信され、同じiframeで応答が得られます。私はソースURLをターゲットにしてみました..しかし、隠れたフィールドを提供します。隠しフィールドを含む隠されたフォームアクションを送信した後に表示されるコンテンツを取得したいと思います..... – user1216062

+0

情報。問題をはっきりと説明すれば誰かがあなたを助けるかもしれませんか? – dirk

関連する問題