使用Selenium从脚本中废弃JSON

时间:2019-07-19 09:08:46

标签: javascript python selenium

我有这个webpage,我正在尝试获取此JSON

JSON

“ I THINK”是由JavaScript注入的...因此,获取响应或page_source无效。

在该JSON中,有一个.m3u8链接,其中包含视频...所以我想要该链接来下载它。

此刻我有以下代码:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# options = Options()
# options.headless = True
# driver = webdriver.Chrome(options=options)
driver = webdriver.Chrome() 

driver.get('https://ed.team/clase/49/464/2199')

usuario = driver.find_element_by_name("email")
usuario.clear()
usuario.send_keys("")

contra = driver.find_element_by_name("password")
contra.clear()
contra.send_keys("")

driver.find_element_by_css_selector("#__next > main > section > form > div:nth-child(3) > input").click() #login button

我的脚本仅登录页面,仅此而已,我不知道如何继续。

如果有人知道如何帮助我,我将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:0)

如果您在问题中包含script元素的内容而不是它的图像,这会容易得多。 但是,尽管如此,获取该脚本元素的HTML,然后使用re模块提取JSON:

import re
import json

script_html = '''<script>

__NEXT_DATA__ = { 
   "a": "b"
};
'''
# clean up the HTML
script_html = script_html.replace('\n', ' ')

script_re = re.compile(r'__NEXT_DATA__ = ({.*})', flags=re.MULTILINE)
raw_json = script_re.search(script_html).group(1)
parsed = json.loads(raw_json)

print(raw_json)
print(parsed)

输出:

{     "a": "b" }
{'a': 'b'}