如何从指定网页提取单词列表并利用random模块随机取词?
问题分析与解决方案
你的代码存在两个核心问题:
- 你将
BeautifulSoup对象放入了仅含一个元素的列表中,random.choice()只能选取这个唯一元素,也就是整个网页的解析对象,自然会输出完整内容。 - 目标网页本质是纯文本格式的单词列表(每个单词单独占一行),完全不需要用
BeautifulSoup解析,直接处理响应文本即可。
修正后的代码
import random import requests url = 'https://www.mit.edu/~ecprice/wordlist.10000' response = requests.get(url) # 按换行分割文本,过滤空行和多余空白字符 word_list = [word.strip() for word in response.text.split('\n') if word.strip()] # 随机选取单个单词 random_word = random.choice(word_list) print(random_word)
代码说明
response.text.split('\n')将网页文本按换行符拆分成单个单词的候选列表- 列表推导式中的
if word.strip()用于过滤文本中可能存在的空行(比如文本首尾的空白行) - 最后直接用
random.choice()从整理好的单词列表中随机选取一个元素
内容的提问来源于stack exchange,提问作者user23282763
相关产品推荐
相关产品推荐

