从HTML页面Python获取带有特定关键字的<li>

2024-05-17 06:35:45 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种方法可以根据Python中包含的单词从HTML页面中提取特定的<li>?你知道吗

例如: 让我们看这一页:https://en.wikipedia.org/wiki/1916

我在Python中得到这个页面的HTML如下:

opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
infile = opener.open('https://en.wikipedia.org/wiki/1916')

我想得到的是每个<li>包含一个给定的单词。如果我搜索“凡尔登”,我希望所有的<li>和他们的内容,有这个词像

<li><a href="/wiki/February_21" title="February 21">February 21</a> – WWI: The <a href="/wiki/Battle_of_Verdun" title="Battle of Verdun">Battle of Verdun</a> begins in <a href="/wiki/French_Third_Republic" title="French Third Republic">France</a>.</li>

Tags: ofhttpstitlehtmlwiki页面liopener
2条回答

你可以这样做

soup = BeautifulSoup(html)
print([i for i in soup.select('li') if 'verdun' in i])

BeautifulSoup允许您通过部分文本进行搜索。只需执行以下操作:

import re
soup = BeautifulSoup(html)
lis = soup.find_all('li', text=re.compile('verdun'))

# Now the lis contain a ResultSet (list) of all li tags with 'verdun' as text
for li in lis:
    print li.text

相关问题 更多 >