为了账号安全,请及时绑定邮箱和手机立即绑定

从 selenium python 中的驱动程序控制台获取 JSON 数据

从 selenium python 中的驱动程序控制台获取 JSON 数据

MMTTMM 2022-10-11 21:07:33
我需要从控制台获取 JSON 数据,可以在 这张图片中看到。到目前为止,我使用了以下代码:j = driver.execute_script(" return document.getElementsByClassName('form-group text required assessment_questions_choices_text')")我试图将数据保存到列表中,但效果不佳。list = [] list = driver.execute_script(" return document.getElementsByClassName('form-group text required assessment_questions_choices_text')")另外,我在网上遇到了一种方法,可以在 这里找到,使用它我只能将数据的索引获取到外部文件。{ “0”:{},“1”:{},“2”:{},“3”:{},“4”:{} }寻找一种方法来导入所有数据,将每个属性直接导入我的 python 代码。提前致谢。
查看完整描述

1 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

这是没有任何问题的代码段。


from selenium import webdriver

from webdriver_manager.chrome import ChromeDriverManager


driver = webdriver.Chrome(ChromeDriverManager().install())

url = "https://stackoverflow.com/questions/61240545/get-json-data-from-driver-console-in-selenium-python"

driver.get(url)

elems = driver.execute_script("return document.getElementsByClassName('post-tag js-gps-track')")

for elem in elems:

    print(elem.text)

driver.quit()

输出:


javascript

python

json

selenium

console.log


Process finished with exit code 0

编辑1:


如果您想获得特定的匹配元素,请使用以下内容。


value = driver.execute_script("return document.getElementsByClassName('name_of_class')[0].innerHTML")

# or you can also use the below if you are interested in first item only

value = driver.execute_script("return document.querySelector('.single_class')[0].innerHTML")

# query selector with multiple classes (class name with whitespaces)

value = driver.execute_script("return document.querySelector('.class1.class2')[0].innerHTML")



查看完整回答
反对 回复 2022-10-11
  • 1 回答
  • 0 关注
  • 284 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信