Python 美搜搜,搜搜都没有按预期工作

Python 美搜搜,搜搜都没有按预期工作,python,beautifulsoup,Python,Beautifulsoup,我刚开始使用BeautifulSoup,我遇到了一个问题。我在下面设置了一个html片段,并创建了一个BeautifulSoup对象: html_snippet = '<p class="course"><span class="text84">Ae 100. Research in Aerospace. </span><span class="text85">Units to be arranged in accordance with work

我刚开始使用BeautifulSoup,我遇到了一个问题。我在下面设置了一个html片段,并创建了一个BeautifulSoup对象:

html_snippet = '<p class="course"><span class="text84">Ae 100. Research in Aerospace. </span><span class="text85">Units to be arranged in accordance with work accomplished. </span><span class="text83">Open to suitably qualified undergraduates and first-year graduate students under the direction of the staff. Credit is based on the satisfactory completion of a substantive research report, which must be approved by the Ae 100 adviser and by the option representative. </span> </p>'
subject = BeautifulSoup(html_snippet)
以前,当我从计算机上的html文件创建BeautifulSoup对象时,find和find_的所有操作都运行良好。然而,当我通过urllib2从在线阅读网页中提取html_片段时,我遇到了一些问题


有人能指出问题所在吗?

像这样传递论点:

import re
subject.find(text=re.compile('A'))
过滤器的默认行为是在整个主体上匹配。通过传入正则表达式,可以匹配片段

编辑:要仅匹配以
A
开头的实体,可以使用以下命令:

subject.find(text=re.compile('^A'))
要仅匹配包含以
A
开头的单词的正文,可以使用:

subject.find_all(text = re.compile(r'\bA'))

很难更具体地说出您在寻找什么,如果我误解了您的要求,请告诉我。

您没有任何节点的文本完全等于“A”或“Research”-您的节点的第一个单词是
A
(或以A开头的单词,例如:
ae
)还有一个有研究的人…可能想要在那里有单词边界(至少我猜这是OP真正想要的)@JonClements我只在他的示例文本中看到
Ae
。也许他是想在身体的开始阶段比赛。我会编辑。可能是最好的-在一行文本中出现的单词“a”和大写字母“a”之间有很大的区别:)无论如何-这肯定是正确的答案,因此来自meI的+1在文本中寻找匹配的单词,这对我很有效。
subject.find_all(text = re.compile(r'\bA'))