2017-05-31 120 views
0

私は現在、ページのコンテンツを印刷し、将来のリクエストペイロードに必要なデータを抽出するスクリプトを作成しています。PythonでJavascript値を取得する

「dfValue」という名前の特定の値を見つけることができません.Javascript内にあるようですが、「dfValue」コンテンツを抽出しようとすると空白の応答しか得られません。

dfValueスニペットは以下の通りです:ページ上の類似した値で

<script type="text/javascript" src="/hpp/js/df.js?v=20170531"></script> 

<div id="df_swf_c" style="display:none;"></div> 
<input type="hidden" name="dfValue" id="dfValue" value="" /> 
<script type="text/javascript"> 
    //<![CDATA[ 
    dfDo("dfValue"); 
    //]]> 
</script> 

私は単にこのようなコードを使用して、それを抽出することができています。

soup.find(None, {'name': 'dfValue'}).get('value') 

これは機能しませんが、dfValueを抽出できる特別な方法はありますか?

アドバイスありがとうございます。

+0

'dfDo(" dfValue ")'とは何ですか?あなたは入力 'dfValue'が空ではないと確信していますか? – Nurjan

+0

スープを使ってdfValueを抽出しようとすると、ページのdfValueの内容を単純にコピーして貼り付けました。 – Larsson

+0

私は** dfValue **はそれ自身が値であり、関数** dfDo **の入力パラメータだと思います。 dfDoが何をしているのかを確認する必要があります。それはいくつかのDOMオブジェクトを設定する場合は、Pythonを介してそれらをフェッチすることができます。 –

答えて

0

このinput要素は、ではなく、のJavascriptです。アクセス可能です。ここに示すように、input要素のnameは 'dfValue'であり、valueは ''(空の文字列)です。このフォームを、このフィールドにデータを入力するか、そうでなければ操作できるようにする必要がある場合

>>> from bs4 import BeautifulSoup 
>>> soup = BeautifulSoup(open('temp.htm'), 'lxml') 
>>> input = soup.find('input') 
>>> input.attrs['name'] 
'dfValue' 
>>> input.attrs['value'] 
'' 

、あなたはセレンライブラリを使用することを検討してください可能性があります。

関連する問題