📅  最后修改于: 2023-12-03 14:46:11.724000             🧑  作者: Mango
“Python 上一个答案”是一个简单的 Python 程序,其目的是获取 Stack Overflow 上一个与特定标签相关的问题的答案。它使用 Stack Exchange API 来搜索问题,并使用BeautifulSoup库解析HTML页面以获取答案。用户可以指定标签和所需答案的数量。
该程序适用于 Python 3.x,操作系统无关。
以下 Python 库是必需的:
这些可以通过 pip 安装。
从 GitHub 下载程序的源代码。 https://github.com/example/python-last-answer
打开终端(Linux或Mac)或命令提示符(Windows)。
在 Shell 中切换到程序源代码所在的目录。
运行以下命令:
$ python lastanswer.py python 3
注意,最后两个参数是标签和所需答案的数量。
程序将从 Stack Overflow 搜索 Python 标签中的问题,并返回最近的 3 个答案。
以下是代码片段:
import requests
from bs4 import BeautifulSoup
url = "https://api.stackexchange.com/2.2/questions"
params = {
"order": "desc",
"sort": "activity",
"tagged": tag,
"site": "stackoverflow",
"filter": "withbody"
}
response = requests.get(url, params=params)
data = response.json()
questions = data["items"]
if len(questions) == 0:
return "No questions found."
answer_links = []
for question in questions:
soup = BeautifulSoup(question["body"], "html.parser")
question_links = soup.find_all("a", href=True)
for link in question_links:
if "stackoverflow.com/questions" in link["href"]:
answer_links.append(link["href"] + "#"+ str(question["accepted_answer_id"]))
answer_links = list(set(answer_links))[:count]
answers = []
for link in answer_links:
response = requests.get(link)
soup = BeautifulSoup(response.content, "html.parser")
answer = soup.find("div", {"class": "accepted-answer"})
answers.append(str(answer))
return "\n\n---\n\n".join(answers)
“Python 上一个答案”是一个简单的 Python 程序,它可以从 Stack Overflow 上找到与给定标签相关的问题,并返回最近的答案。可以使用此程序作为“休闲时间习题”,或用这个程序来获得技术支持。