在Python中使用Selenium获取脚本的“var”值

r6hnlfcb  于 2023-01-26  发布在  Python
关注(0)|答案(4)|浏览(224)
from selenium import webdriver

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

p_id = driver.find_elements_by_tag_name("script")

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

kb5ga3dv

kb5ga3dv1#

正则表达式模块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 = (.*);')中捕获匹配的字符串组((.*)),如果找到匹配,则打印该组。

drkbr07n

drkbr07n2#

您可以通过.text.getText()访问tag的值或html的任何element

mfpqipee

mfpqipee3#

因为你使用的是find_elements_by_tag_name(),它返回元素列表。迭代该列表并检查元素。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)
ocebsuys

ocebsuys4#

改用Xpath:

从 selenium 导入webdriver
驱动程序= Web驱动程序. Chrome()
获取("url_goes_here")
p_id =驱动程序. find_element(通过. XPATH,"ADDXPATH")
p_id.获取属性("外部HTML")

相关问题