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

如何提取网页笑话的回答内容?列表去重方案失效求助

爬取目标页面笑话回答的解决方案

方法1:直接获取<strong>的兄弟节点内容

每个笑话的回答就在<strong>标签的紧邻后面,用next_sibling可以直接定位,记得清理多余空白:

from bs4 import BeautifulSoup
import requests

url = "https://www.womansday.com/life/entertainment/a38635408/corny-jokes/"
resp = requests.get(url)
soup = BeautifulSoup(resp.text, "html.parser")

for li in soup.find_all("li"):
    strong = li.find("strong")
    if strong:
        answer = strong.next_sibling.strip()
        if answer:
            print(answer)

方法2:通过文本差集提取回答

先拿到<li>的完整文本,再去掉<strong>里的问题文本,剩余部分就是回答:

for li in soup.find_all("li"):
    strong = li.find("strong")
    if strong:
        full_text = li.get_text(strip=True, separator=" ")
        question = strong.get_text(strip=True)
        answer = full_text.replace(question, "").strip()
        if answer:
            print(answer)

方法3:遍历<li>子节点筛选非<strong>内容

遍历<li>的所有子节点,只收集非<strong>标签的文本内容,最后拼接成完整回答:

for li in soup.find_all("li"):
    answer_pieces = []
    for node in li.children:
        if node.name != "strong":
            text = str(node).strip()
            if text:
                answer_pieces.append(text)
    answer = " ".join(answer_pieces)
    if answer:
        print(answer)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:45:35