查找从关键字到关键字

时间:2015-09-26 17:31:42

标签: python html web-scraping

因此,我的代码从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之间的内容。

谢谢。

1 个答案:

答案 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 ,了解具体案例中您需要的内容。