使用 Selenium 通过执行 JavaScript 代码获取变量值。使用 Beautiful Soup 从 HTML 元素中提取 JavaScript 代码,然后使用 eval() 函数获取变量值。使用正则表达式从网页中匹配 JavaScript 变量声明模式,并提取变量值。

如何通过 Python 爬虫获取变量
Python 爬虫是用来从网页中提取数据的有力工具。在某些情况下,您可能需要获取变量的值,例如存储在 JavaScript 变量中的数据。这里有几种方法可以实现:
方法 1:使用 Selenium
Selenium 是一种广泛使用的 WebDriver,它使您能够像真实浏览器一样与网页交互。要使用 Selenium 获取变量,请按照以下步骤操作:
立即学习“Python免费学习笔记(深入)”;
- 导入 Selenium 包:
import selenium - 启动浏览器:
browser = selenium.webdriver.Chrome() - 导航到目标网页:
browser.get("url") - 执行 JavaScript 代码:
variable = browser.execute_script("return variable_name") - 获取变量的值:
print(variable)
方法 2:使用 Beautiful Soup
Beautiful Soup 是一个流行的 HTML 和 XML 解析库。要使用 Beautiful Soup 获取变量,请按照以下步骤操作:
- 导入 Beautiful Soup 包:
import bs4 - 从网页获取 HTML:
soup = bs4.BeautifulSoup(html, "html.parser") - 找到包含变量的 HTML 元素:
element = soup.find("script", {"type": "text/javascript"}) - 提取 JavaScript 代码:
javascript = element.text - 使用 Python eval() 函数提取变量:
variable = eval(javascript)
方法 3:使用正则表达式
正则表达式是一种模式匹配技术,可以用来从文本中提取数据。要使用正则表达式获取变量,请按照以下步骤操作:
- 导入 re 包:
import re - 创建正则表达式:
pattern = re.compile("var variable_name = (.*)") - 搜索 JavaScript 代码:
matches = pattern.search(html) - 获取变量的值:
variable = matches.group(1)
示例
假设目标网页中有以下 JavaScript 代码:
您可以使用以上方法之一获取 username 变量的值。例如,使用 Selenium:
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("url")
username = browser.execute_script("return username")
print(username) # 输出:John Doe











