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

如何随机化列表内容?网页短语爬取脚本功能优化求助

嘿,这问题很简单,咱们把代码调整一下就能实现随机展示啦!

你现在的代码是直接遍历打印所有短语,咱们先把爬下来的短语存到一个列表里,之后用random模块就能轻松实现随机展示了。

修改后的完整代码

from bs4 import BeautifulSoup
import requests
import random

url = 'https://www.phrases.org.uk/meanings/phrases-and-sayings-list.html'
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')

# 先创建一个空列表,用来存所有爬取到的短语
phrases_list = []

for phrase in soup.find_all(class_='phrase-list'):
    phrase_text = phrase.text.strip()  # 去掉文本前后的换行、空格,让内容更干净
    if phrase_text:  # 过滤掉空的内容,避免列表里混入无效项
        phrases_list.append(phrase_text)

# 随机展示单个短语
if phrases_list:  # 先判断列表里有没有内容,避免报错
    random_phrase = random.choice(phrases_list)
    print("今日随机短语:", random_phrase)
else:
    print("哎呀,没爬取到任何短语呢")

额外的随机玩法

如果你想要更多随机展示的方式,这里还有两个小技巧:

  • 随机展示多个不重复的短语:比如随机选3个
if len(phrases_list) >= 3:
    selected_phrases = random.sample(phrases_list, 3)
    print("\n随机挑选3个短语:")
    for idx, p in enumerate(selected_phrases, 1):
        print(f"{idx}. {p}")
else:
    print("\n短语数量不够3个哦")
  • 打乱整个列表顺序后展示:把所有短语打乱再逐个输出
random.shuffle(phrases_list)
print("\n打乱顺序后的短语列表:")
for p in phrases_list[:5]:  # 这里只展示前5个,你可以根据需求调整
    print(p)

核心思路就是先把所有短语收集到列表里,再用random模块的方法来实现随机逻辑,是不是很简单?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:45:12