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

使用Selenium Python如何将提取的链接元素转为有效可访问链接?

问题:提取URL并逐个访问时出错

我需要提取页面<p>标签内的URL,将其转为可访问链接后逐个访问以提取页面数据,但运行代码时出现错误。


终端输出截图

终端输出截图

终端错误截图

终端错误截图

当前代码

links = []
classe = driver.find_elements(By.XPATH, "//*[@class='LinksShowcase_UrlContainer__kMj_n']/p")
for i in classe:
    sleep(0.5)
    links.append(i)
    print(links)
    sleep(2)
for linkAtual in links:
    driver.get(linkAtual)

页面情况(URL以文本形式存在于<p>标签内)

页面截图1
页面截图2
页面截图3


错误原因

你把WebElement元素对象直接存进了links列表,而driver.get()要求传入字符串格式的URL,不是元素对象,这就是报错的根源。

修正后的代码

links = []
# 定位所有包含URL的<p>标签
classe = driver.find_elements(By.XPATH, "//*[@class='LinksShowcase_UrlContainer__kMj_n']/p")
for i in classe:
    sleep(0.5)
    # 提取<p>标签内的文本(即目标URL),去除首尾空白后加入列表
    url = i.text.strip()
    links.append(url)
    print(url)
    sleep(2)

# 遍历URL列表逐个访问
for linkAtual in links:
    # 校验URL格式,确保是可访问的链接
    if linkAtual.startswith(('http://', 'https://')):
        driver.get(linkAtual)
    else:
        print(f"无效URL:{linkAtual}")

补充提示

  • 如果提取到的文本缺少http/https前缀,需要手动拼接,比如:url = f"https://{i.text.strip()}"
  • 尽量用WebDriverWait显式等待替代固定时长的sleep,能提升代码的稳定性和执行效率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:20:16