2016-09-16 6 views

答えて

0

、あなただけの希望script要素を見つけることができます。次に、実際のcontext値を抽出するために、あなたが例えば、使用することができ、正規表現:

import re 
from bs4 import BeautifulSoup 

data = """ 
<script> 
(function (root) { 
root['__playIT'] = {"context":{"dispatcher":{"stores"} 
}(this)); 
</script>""" 
soup = BeautifulSoup(data, "html.parser") 

pattern = re.compile(r'"context":(\{.*?)$', re.MULTILINE | re.DOTALL) 
script = soup.find("script", text=pattern) 

result = pattern.search(script.text).group(1) 
print(result) 

プリント:

{"dispatcher":{"stores"} 

注、その値が有効なJSON文字列をされているならば、あなたjson.loads()をロードしている可能性があります。

+0

こんにちは!高速回答ありがとう! 結果= pattern.search(script.text).group(1) はAttributeError: 'NoneType' オブジェクトが良く無属性 'テキスト' – gel

+0

@gelを持っていない、 私はあなたのコードを実行しようと、このエラーメッセージが表示されますですそれが私が実行してきたことの完全なコードを提供した理由の1つです。私はあなたの実際のスクリプトの価値があなたが質問に投稿したものと異なると思います。 – alecxe

+0

私は実行しようとしたあなたの完全なコードでした。私は何も変えなかった。 EDIT:これが役立つ場合:https://codeshare.io/noIKd – gel

関連する問題