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

使用BeautifulSoup查找网页指定文本失败返回未找到问题求助

问题原因

  • BeautifulSoup的find_all(string="python")默认是完全匹配模式,只有当某个文本节点的全部内容和字符串python完全一致(包括大小写、前后无其他字符)时才会被命中。python.org官网的文本里的相关字符大多是首字母大写的Python,或者前后带有空格、标点等其他内容,不存在完全等于全小写python的独立文本节点,因此返回空结果。
  • 你给出的原始代码还缺少requests库的导入语句,直接运行会报命名错误。

修复方案

方案1:用正则实现模糊匹配(支持忽略大小写)

如果需要匹配所有包含python字符(不区分大小写)的文本节点,可以结合正则表达式实现:

import requests
import re
from bs4 import BeautifulSoup

response = requests.get("https://www.python.org/")
soup = BeautifulSoup(response.text, "lxml")
# re.IGNORECASE 表示忽略大小写匹配
find_python = soup.find_all(string=re.compile("python", re.IGNORECASE))

if find_python:
    print('found python')
else:
    print("python not found")

方案2:直接判断页面全文是否包含目标字符

如果只需要判断存在性不需要拿到具体匹配的节点,可以直接提取整个页面的文本转小写后判断,代码更简洁:

import requests
from bs4 import BeautifulSoup

response = requests.get("https://www.python.org/")
soup = BeautifulSoup(response.text, "lxml")
page_text = soup.text.lower()

if "python" in page_text:
    print('found python')
else:
    print("python not found")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:15:05