使用带有 Python 的 Selenium 获取脚本的 "var" 的值

Getting the value of a script's "var" using Selenium with Python

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("url_goes_here")

p_id = driver.find_elements_by_tag_name("script")

这为我获取了我需要的脚本。我不需要执行它,因为它已经执行并且 运行 在初始页面加载时。 它包含一个名为 "task" 的变量。我如何使用 Selenium 访问它的值?

您可以通过 .text.getText()

访问 tag 或 html 的任何 element 的值

因为您正在使用 find_elements_by_tag_name() 的 returns 元素列表。 迭代该列表并检查 element.text 包含 task 然后 print text 该元素。

p_id = driver.find_elements_by_tag_name("script")
for id in p_id:
    if 'task' in id.text:
        print(id.text)

正则表达式模块 re 可以帮助您:

import re
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("url_goes_here")

p_id = driver.find_elements_by_tag_name("script")

for script in p_id:
    innerHTML=script.get_property('innerHTML')
    task=re.search('var task = (.*);',innerHTML)
    if task is not None:
        print(task.group(1))

它的作用是查看每个脚本的 innerHTML,并从定义的搜索模式 ('var task = (.*);') 中捕获匹配的字符串组 ((.*))。如果找到匹配项,则打印出该组。