2017-02-02 6 views
-2

JavaScriptを使用してデータを保護するウェブページからデータを削り取る必要があるため、ブラウザからページにアクセスしてソースコードを見ると、 Mozillaの "Analyze element"を実行したり、自分のコンピュータ上でそのページをダウンロードしてソースコードを調べると、必要なデータが暗号化されていないことがわかります。Python - ウェブページの解析ソースコードを取得

import requests 
source = requests.get(url).text 

が、私はまた、wgetコマンドを使用しようとした

未解析のソースコードを受け取ります:現時点では

私が使用しています

import wget 
source = wget.download(url) 

をそれがダウンロード「アクセスが拒否されたCloudflare」ページ。

Pythonで解析されたソースコードにアクセスするにはどうすればよいですか?

+1

彼らは、あなたが(requests.get 'から取得したコンテンツを暗号化されていない)'の実際のソースでありますその特定のURLとの違いは、現代のブラウザはjavascriptのコンテンツを解析して、最終ページにレンダリングするように伝えられます(テーブルを作成し、余分なデータを読み込むなど)。 – Shane

+0

@Shane説明をいただきありがとうございます。その後、解析されたソースコードを入手することは可能ですか? – Hyperion

+0

確かに、Chromeのような実際のブラウザで "バックグラウンド"のリクエストがどのように機能しているかを調べ、そのリクエストをシミュレートする必要があります。 – Shane

答えて

1

JavaScriptでページをレンダリングする場合は、PhantomJSなどのheadless browserをダウンロードしてダウンロードし、ドキュメント構造にアクセスする必要があります。ヘッドレスブラウザはJavaScriptをページ上で実行し、実際のブラウザと同様に、外部データを取得したり、テーブルにデータを取り込んだりしてドキュメントを作成します。ここで

はPhantomJSプログラムがページをダウンロードして、ドキュメントのタイトルを取得する例です。

var page = require('webpage').create(); 
page.open(url, function(status) { 
    var title = page.evaluate(function() { 
     return document.title; 
    }); 
    console.log('Page title is ' + title); 
    phantom.exit(); 
}); 
+0

私は最初の答え[ここ](http://stackoverflow.com/questions/16856036/save-html-output-of-page-after-execution-of-the)で提供されているコードを使用してWebページをダウンロードしようとしました。 -pages-javascript)、結果としてダウンロードしたページのソースコードは解析されません。どのようにアクセス可能な形式で最終コードを取得するのですか? – Hyperion

+0

'onLoadFinished'ハンドラにページコンテンツを書きましたか? –

+0

答えにコードを1:1コピーして、それを私のURLに置き換えました。私は実際にJSに精通していません – Hyperion

関連する問題