如何用Python获取Pastebin内容存入列表并实现随机抽取问答对
实现方案
依赖安装
首先需要安装第三方HTTP请求库requests,安装命令:
pip install requests
基础实现代码
import requests import random # 拉取Pastebin原始内容 resp = requests.get("https://pastebin.com/raw/vxGkayKY") resp.encoding = "utf-8" # 拆分内容为行,过滤空行和空白行 valid_lines = [line.strip() for line in resp.text.splitlines() if line.strip()] # 每两行为一组生成问答对,存入列表 qa_list = [] for idx in range(0, len(valid_lines), 2): # 避免最后一行没有对应回答的异常情况 if idx + 1 < len(valid_lines): qa_list.append(f"{valid_lines[idx]}\n{valid_lines[idx+1]}") # 随机抽取并打印问答 selected_qa = random.choice(qa_list) print(selected_qa)
带异常处理的稳定版本
如果需要兼容网络异常、内容格式错误等场景,可以使用如下版本:
import requests import random qa_list = [] try: # 加超时设置,避免长时间挂起 resp = requests.get("https://pastebin.com/raw/vxGkayKY", timeout=10) # 校验请求状态 resp.raise_for_status() resp.encoding = "utf-8" valid_lines = [line.strip() for line in resp.text.splitlines() if line.strip()] for idx in range(0, len(valid_lines), 2): if idx + 1 < len(valid_lines): qa_list.append(f"{valid_lines[idx]}\n{valid_lines[idx+1]}") if not qa_list: print("未获取到有效问答对") else: print(random.choice(qa_list)) except Exception as e: print(f"运行出错:{str(e)}")
逻辑说明
- 代码默认目标内容的格式为一行问题、一行回答交替排列,会自动跳过中间的空行
- 问答列表的结构完全符合你给出的示例要求,可直接对
qa_list使用random.choice()方法抽取内容 - 最终输出就是拆分好的问题和回答,两行显示,和你给出的输出示例一致
内容的提问来源于stack exchange,提问作者Professor Puddle
相关产品推荐
相关产品推荐

