尝试抓取嵌套在标签中的一个元素

时间:2019-03-09 20:17:37

标签: python python-3.x web-scraping beautifulsoup screen-scraping

我试图仅捕获“ 其他”文本,本质上是提取强标签元素

88.4 ms ± 22.2 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

到目前为止,我的代码:

<ul class="listing-row__meta">
                        <li>
                            <strong>Ext. Color:</strong>

                                Other
                        </li>
                    </ul>

这个特定的脚本没有运行,在此之前我只是保留了色线并且可以正常工作,但是它显示了“ Ext。Color”

2 个答案:

答案 0 :(得分:1)

您可以find的{​​{1}}元素,然后获取其next_sibling

<strong>

结果:

from bs4 import BeautifulSoup

markup = r"""
<ul class="listing-row__meta">
                        <li>
                            <strong>Ext. Color:</strong>

                                Other
                        </li>
                    </ul>
"""

soup = BeautifulSoup(markup, "html.parser")
print(soup.find("strong").next_sibling.strip())

答案 1 :(得分:0)

您可以在父类上使用stripped_strings

from bs4 import BeautifulSoup

html = """
<ul class="listing-row__meta">
                        <li>
                            <strong>Ext. Color:</strong>

                                Other
                        </li>
                    </ul>
"""

soup = BeautifulSoup(html, "lxml")
firstItem = soup.select_one('.listing-row__meta')
strings = [string for string in firstItem.stripped_strings]
print(strings[1])