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

Python中如何从存储网页链接的列表里随机抽取单个元素?

问题修复方案

核心问题原因

  • 你在循环中错误地把存储链接的列表变量articles直接赋值为单条链接字符串,覆盖了原本的列表结构,没有把所有提取到的链接存入列表
  • 随机选择逻辑放在了循环内部,每次遍历到一条链接就对单条字符串做随机选取,最终输出的是单个字符而非完整链接

修正后可运行代码

from bs4 import BeautifulSoup
import urllib
import requests
import re
import random

url = "https://www.formula1.com/en/latest.html"
articles = []
# 修正原变量拼写错误respone为response
response = urllib.request.urlopen(url)
soup = BeautifulSoup(response,'lxml')

def getItems():
    # 先收集所有符合规则的链接
    for a in soup.findAll('a',attrs={'href': re.compile("/en/latest/article.")}):
        # 使用append方法将链接添加到列表,不要直接赋值覆盖列表变量
        articles.append(a['href'])
    # 所有链接收集完成后再执行随机选择
    x = random.choice(articles)
    print(x)

# 调用定义好的函数执行逻辑
getItems()

逻辑说明

  • 循环内仅执行链接收集操作,通过append()把每条匹配的href存入articles列表
  • 循环结束后再调用random.choice(articles),此时传入的是完整的链接列表,会随机返回一个完整的链接地址

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 22:51:03