How can I get a JavaScript variable using Python?
I'm trying to get a Javascript variable using Python and I'm having some problems ...
This is what the variable looks like:
<script type="text/javascript">
var exampleVar = [
{...},
{...},
{
"key":"0000",
"abo":
{
"param1":"1"
"param2":"2"
"param3":
[
{
"param3a1":"000"
"param3a2":"111"
},
{
"param3b1":"100"
"param3b2":"101"
}
]
}
]
</script>
After some research I found that its content was in JSON format and I'm new to this ...
My problem is that I would like to get the value of "param3b1" (for example) so that I can use it in my Python program.
How do I do this in Python?
Thank!
+3
source to share
2 answers
Step by step is what you need to do.
- extract the json string from the file / html string. you need to get the string between tags first
<script>
and then the variable definition - extract the parameter from the json string.
from xml.etree import ElementTree
import json
tree = ElementTree.fromstring(js_String).getroot() #get the root
#use etree.find or whatever to find the text you need in your html file
script_text = tree.text.strip()
#extract json string
#you could use the re module if the string extraction is complex
json_string = script_text.split('var exampleVar =')[1]
#note that this will work only for the example you have given.
try:
data = json.loads(json_string)
except ValueError:
print "invalid json", json_string
else:
value = data['abo']['param3']['param3b1']
+1
source to share
You need to use the JSON module.
import json
myJson = json.loads(your_json_string)
param3b1 = myJson['abo']['param3'][1]['param3b1']
JSON module documentation: https://docs.python.org/2/library/json.html
+2
source to share