因此,我的代码从URL检索HTML文件并将其保存为文本文档。
urllib.urlretrieve("http://www.testlink.com", "example.txt")
retrieve = open("example.txt", "r")
然后,我希望它从包含关键字的行中提取特定文本。字符串看起来像这样:
<b class="whb">This is the text I want to retrieve</b> This is additional text that I don't want.
目前,我的代码打印了ENTIRE行,如下所示:
for line in retrieve.readlines():
if '<b class="whb">' in line:
print line
如何指定要打印的行的哪个部分?我想要b class =“whb”和/ b之间的内容。
谢谢。
答案 0 :(得分:1)
正如我在评论中所说,我会使用BeautifulSoup。这是一个小例子:
from bs4 import BeautifulSoup
html_doc = "<b class='whb'>This is the text I want to retrieve</b> This is additional text that I don't want."
soup = BeautifulSoup(html_doc, 'html.parser')
print soup.b.text
如果html_doc
是一个包含多个<b>
标记的较大HTML文档,则可以将最后一行替换为:
print soup.find("b", {"class":"whb"}).text
如果html_doc
有多个<b class='whb'>
标签,并且您想要全部,请使用findAll()
:
all_bs = [b.text for b in soup.findAll("b", {"class":"whb"})]
BeautifulSoup是一款功能强大的全功能网络刮刀。请阅读documentation ,了解具体案例中您需要的内容。