基本上在我的项目中,我使用 webbrowser 打开一个网页,然后使用 pyautogui 在搜索栏中输入一些内容,这会打开一个新页面。我需要一个函数来查找新页面的链接并将其存储为变量,以便我可以拥有动态 requests.get() 函数。我希望我的解释有意义
我不知道如何检索它并将其保存为变量,我可以将它作为文本或其他内容检索,但它不会作为变量保存到相同的代码中跑步
你不能直接用
webbrowser
或
pyautogui
获取打开网页的链接。这两个库主要用于自动化浏览器操作,而非提取网页数据。
你需要使用一个能与网页交互并提取信息的库,比如
requests
或
selenium
。
使用
selenium
获取网页链接:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
# 初始化 webdriver (这里以 Chrome 为例)
driver = webdriver.Chrome()
# 打开初始网页
driver.get("https://www.google.com/")
# 定位搜索栏并输入内容
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Python")
search_box.send_keys(Keys.ENTER)
# 等待新页面加载 (可根据实际情况调整等待时间)
time.sleep(2)
# 获取当前页面的 URL 并存储到变量
current_url = driver.current_url
# 打印链接
print(f"当前网页链接: {current_url}")
# 关闭浏览器
driver.quit()
解释:
-
导入必要的库:
selenium
用于控制浏览器,time
用于设置等待时间。 - 初始化 WebDriver: 你需要下载对应浏览器的 WebDriver 并将其路径添加到系统环境变量中。
-
打开网页:
使用
driver.get()
方法打开目标网页。 -
定位元素:
使用
driver.find_element()
方法定位搜索栏。这里使用By.NAME
来根据元素的name
属性查找。 -
输入内容并提交:
使用
send_keys()
方法模拟键盘输入,然后使用Keys.ENTER
模拟按下回车键。 -
等待页面加载:
使用
time.sleep()
方法等待新页面加载完成。 -
获取当前 URL:
使用
driver.current_url
属性获取当前页面的 URL,并将其存储到current_url
变量中。 -
关闭浏览器:
使用
driver.quit()
方法关闭浏览器。
现在,你可以在
current_url
变量中找到新页面的链接,并将其用于
requests.get()
函数中进行后续操作。