You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取新打开网页的链接并存储为变量,实现动态requests.get()

解决方法

方案一:用Selenium替代webbrowser+pyautogui(推荐)

webbrowser模块仅负责调用系统浏览器,没有提供和浏览器交互的API,没法直接获取页面URL。而Selenium是专门的浏览器自动化工具,既能替代pyautogui完成输入操作,还能直接读取当前页面的URL存入变量,稳定性和可靠性远高于原方案。

示例代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def get_new_page_url(initial_url, search_content, search_selector):
    # 初始化Chrome浏览器(需提前安装对应版本的chromedriver)
    driver = webdriver.Chrome()
    try:
        # 打开初始页面
        driver.get(initial_url)
        
        # 显式等待搜索栏加载完成,避免因页面未加载完全报错
        search_box = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.CSS_SELECTOR, search_selector))
        )
        # 输入搜索内容并回车
        search_box.send_keys(search_content + Keys.ENTER)
        
        # 等待页面跳转完成(这里以URL变化为判断条件,可根据实际调整)
        WebDriverWait(driver, 10).until(
            EC.url_changes(initial_url)
        )
        
        # 获取新页面的URL并返回
        return driver.current_url
    finally:
        # 无论成功失败都关闭浏览器
        driver.quit()

# 调用示例:替换成你的初始地址、搜索内容和搜索栏选择器
new_url = get_new_page_url(
    initial_url="https://www.google.com",
    search_content="python requests",
    search_selector="input[name='q']"
)

# 现在可以直接用requests.get(new_url)
print(new_url)

方案二:基于webbrowser+pyautogui的兼容方案(不推荐)

如果必须保留原工具链,只能通过模拟操作浏览器地址栏,将URL复制到剪贴板后再读取到变量中。这种方法依赖浏览器快捷键和窗口状态,兼容性差,仅作为临时替代方案。

示例代码:

import webbrowser
import pyautogui
import time
import pyperclip

def get_new_page_url():
    # 打开初始页面
    webbrowser.open("https://www.google.com")
    time.sleep(3)  # 等待页面加载完成
    
    # 定位搜索栏并输入内容(需自行调整坐标或用pyautogui.locateOnScreen定位)
    pyautogui.click(x=400, y=400)  # 替换为实际搜索栏坐标
    pyautogui.typewrite("python requests", interval=0.1)
    pyautogui.press("enter")
    time.sleep(3)  # 等待新页面加载
    
    # 选中地址栏(Chrome/Firefox通用快捷键Ctrl+L)
    pyautogui.hotkey("ctrl", "l")
    time.sleep(0.5)
    # 复制地址栏内容到剪贴板
    pyautogui.hotkey("ctrl", "c")
    time.sleep(0.5)
    # 从剪贴板读取URL到变量
    return pyperclip.paste()

# 调用获取URL
new_url = get_new_page_url()
print(new_url)

内容的提问来源于stack exchange,提问作者Blakely Schreiber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 03:12:32