使用Beautiful Soup无法找到指定注释,请求排查解决
问题原因与解决方案
你的代码找不到目标注释的核心原因是:BeautifulSoup解析注释时,会自动剥离<!--和-->标签,只保留标签内部的文本作为Comment对象的string值。你原代码里试图匹配带完整标签的字符串"<!-- a -->",但实际Comment的string是" a "(前后包含空格),自然匹配失败。
修正后的代码
首先确保导入Comment类,然后修改匹配逻辑,直接检查注释内部的内容:
from bs4 import BeautifulSoup, Comment # 解析HTML内容 soup = BeautifulSoup(response.content, "html.parser") # 查找内容为"a"(忽略前后空格)的注释 start_comment = soup.find(string=lambda text: isinstance(text, Comment) and text.strip() == "a")
关键说明
- 如果只需要匹配包含"a"的注释,可把判断条件改为
"a" in text - 用
text.strip()是为了忽略注释内容前后的空格(比如你的示例注释<!-- a -->内部有空格),避免空格干扰匹配精度
内容的提问来源于stack exchange,提问作者Scouse_Bob
相关产品推荐
相关产品推荐

