我尝试了soup.find(’!-‘),但似乎没有用。提前致谢。
编辑:感谢您有关如何查找所有评论的提示。我有一个后续问题。如何专门搜索评论?
例如,我有以下注释标记:
<!-- <span class="titlefont"> <i>Wednesday 110518</i>(05:00PM)<br /></span> -->
我真的只想要这些东西<i>Wednesday 110518</i>
。“
110518”是我要用作搜索目标的日期YYMMDD。但是,我不知道如何在特定的注释标签中找到某些内容。
Pyparsing允许您使用内置htmlComment
表达式搜索HTML注释,并附加解析时回调以验证和提取注释中的各种数据字段:
from pyparsing import makeHTMLTags, oneOf, withAttribute, Word, nums, Group, htmlComment
import calendar
# have pyparsing define tag start/end expressions for the
# tags we want to look for inside the comments
span,spanEnd = makeHTMLTags("span")
i,iEnd = makeHTMLTags("i")
# only want spans with class=titlefont
span.addParseAction(withAttribute(**{'class':'titlefont'}))
# define what specifically we are looking for in this comment
weekdayname = oneOf(list(calendar.day_name))
integer = Word(nums)
dateExpr = Group(weekdayname("day") + integer("daynum"))
commentBody = '<!--' + span + i + dateExpr("date") + iEnd
# define a parse action to attach to the standard htmlComment expression,
# to extract only what we want (or raise a ParseException in case
# this is not one of the comments we're looking for)
def grabCommentContents(tokens):
return commentBody.parseString(tokens[0])
htmlComment.addParseAction(grabCommentContents)
# let's try it
htmlsource = """
want to match this one
<!-- <span class="titlefont"> <i>Wednesday 110518</i>(05:00PM)<br /></span> -->
don't want the next one, wrong span class
<!-- <span class="bodyfont"> <i>Wednesday 110519</i>(05:00PM)<br /></span> -->
not even a span tag!
<!-- some other text with a date in italics <i>Wednesday 110520</i>(05:00PM)<br /></span> -->
another matching comment, on a different day
<!-- <span class="titlefont"> <i>Thursday 110521</i>(05:00PM)<br /></span> -->
"""
for comment in htmlComment.searchString(htmlsource):
parsedDate = comment.date
# date info can be accessed like elements in a list
print parsedDate[0], parsedDate[1]
# because we named the expressions within the dateExpr Group
# we can also get at them by name (this is much more robust, and
# easier to maintain/update later)
print parsedDate.day
print parsedDate.daynum
print
印刷品:
Wednesday 110518
Wednesday
110518
Thursday 110521
Thursday
110521
问题内容: 我可以使用BS轻松遍历通用标签,但是我不知道如何查找特定标签。例如,我怎么能找到所有的出现?BS可以吗? 问题答案: 以下应该工作 有两种搜索标签的方法。 http://www.crummy.com/software/BeautifulSoup/documentation.html 有关更多文本的理解和使用 http://lxml.de/elementsoup.html
问题内容: 我想使用漂亮的汤删除html文件中的所有注释。由于BS4将每个注释作为一种特殊类型的可导航字符串,所以我认为这段代码可以工作: 所以那行不通…。如何使用BS4查找所有评论? 问题答案: 您可以将函数传递给find_all()来帮助它检查字符串是否为Comment。 例如我有下面的HTML: 码: 输出将是: 顺便说一句,我认为不起作用的原因是(来自BeautifulSoup文档): 输
问题内容: 我想获取所有属于以下子项的标签: 我知道如何找到像这样的特定类的元素: 但是我不知道如何找到所有的孩子,而不是其他孩子。 就像我想选择: 问题答案: 尝试这个
comment评论标签 标签: <comment></comment> 作用:评论标签 用法示例: <comment action="get_comment" catid="$catid" id="$id"> .. HTML ..</comment> 基本参数 参数 说明 @action 调用方法(必填) @catid 栏目id(必填),列表页,内容页可以使用 $catid 获取当前栏目。 公
我正试图用漂亮的汤刮一个汇合页的身体。当使用Confluence API时,我会得到以下正文(这只是其中的一部分): 我已经搜索了我的屁股,但不知何故,我似乎不明白如何搜索一个段落与特定的文本。 另一件我认识但不明白的事情是:当我使用:搜索所有段落时,我会找到该段落,但它包含了所有子元素的所有文本,因此段落文本如下所示:“System Status:GreenIN Operation”
问题内容: 如何使用BeautifulSoup搜索仅包含我要搜索的属性的标签? 例如,我要查找所有标签。 如下代码: 获取我想要的所有数据,还获取具有该属性的所有标签 我也试过了: 这什么也不返回(可能是由于正则表达式不好) 我想知道在BeautifulSoup中是否有一种方法可以说“查找唯一属性为”的标签 *例如,如果HTML文档包含以下标记,则为 *UPDATE : 我只希望第一个标签()返回