使用带有 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 = (.*);'
) 中捕获匹配的字符串组 ((.*)
)。如果找到匹配项,则打印出该组。
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 = (.*);'
) 中捕获匹配的字符串组 ((.*)
)。如果找到匹配项,则打印出该组。