beautifulGroup:嵌套元素

2024-06-02 12:59:55 发布

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

我想用BeautifulSoup从这个HTML文本(Springer journal descriptions)中提取影响因子(0.806):

<div id="quick-facts-container" class="SideBox">
    <ul class="ListStack ListStack--float">
        <li>
            <span>Impact Factor</span>
            <span>0.806</span>
        </li>
        <li>
            <span>Available</span>
            <span>1996 - 2017</span>
        </li>
        <li>
            <span>Volumes</span>
            <span>22</span>
        </li>
        <li>
            <span>Issues</span>
            <span>265</span>
        </li>
    </ul>
</div>

因为它是嵌套的,我想得到第二个<span>的内容,我不知道怎么做。在

我的python脚本相当简单:

^{pr2}$

Tags: 文本dividhtmlliquickul因子
2条回答

以下措施应该有效:

from bs4 import BeautifulSoup

r = urllib.request.urlopen('file:///197.html').read()
soup = BeautifulSoup(r, 'html.parser')

data = [i.text for i in soup.find(id='quick-facts-container').li.find_all('span')]
print("{} ({})".format(data[0], data[1]))

将显示:

^{pr2}$

如果只需要文档或标记的文本部分,则可以使用get_text()方法。它以单个Unicode字符串的形式返回文档中或标记下的所有文本:

In [6]: for li in soup.find('div', id='quick-facts-container').find_all('li'):
   ...:     print(li.get_text(strip=True))
   ...:     
Impact Factor0.806
Available1996 - 2017

相关问题 更多 >