2017-02-09 14 views
1

は、私は内側にJavaScriptを使用してWebページを持っていると私は、関数に渡された2つの変数と一致する必要がHTMLソースコード内のJavaScriptの変数マッチと数字。私はそれらの両方に一致する必要があります。これは私が今使用しているものである:。正規表現

data = getSoup(url) # my function to get the beautifulsoup object 
script = data.find('script', text = re.compile(r'document\.write\(function\(')).text.replace('document.write(function(\'', '') 
variable1 = script.split("', '")[0] 
variable2 = script.split("', '")[1].replace("'));","") 

しかし、私は常にではない関数はスクリプトタグのInSiteでもあるため(よりシンプルかつ「安全」なものを使いたい

更新: おかげでトーマスアヨブ答えに私は私のために働いて、簡単な解決策を見つけた:

script = re.findall(r"document\.write\(function\(\'(.*?)\', \'(.*?)\'\)\)\;", str(data))[0] 
variable1 = script[0] 
variable2 = script[1] 
+0

長い話を参照してください、あなたは 'のdocument.write(関数( '変数1'、 '変数2')を)削除しないようにしたい;' 'text'から関係なく、変数の名前を? –

+0

変数が何であれ2つの変数を2つのpython変数に抽出する必要があります。私は正規表現に "document \ .write \(function \( '(。*?)'、 '(。*?)' \)\);しかし、私は2つの変数をどのように一致させるのかわかりません – Hyperion

+0

[this](https://ideone.com/oUZxYQ)のようなもの? –

答えて

0

あなたは、この正規表現を使用することができます。

regex = r"document\.write\(function\(\s*'([^']+)'\s*,\s*'([^']+)'\s*\)" 

短いdemo