给定下面的HTML代码,我只想输出h1的文本,而不要输出范围的文本(由h1封装)的“Details about''。

我当前的输出为:

Details about   New Men's Genuine Leather Bifold ID Credit Card Money Holder Wallet Black

我想:
New Men's Genuine Leather Bifold ID Credit Card Money Holder Wallet Black

这是我正在使用的HTML
<h1 class="it-ttl" itemprop="name" id="itemTitle"><span class="g-hdn">Details about  &nbsp;</span>New Men&#039;s Genuine Leather Bifold ID Credit Card Money Holder Wallet Black</h1>

这是我当前的代码:
for line in soup.find_all('h1',attrs={'itemprop':'name'}):
    print line.get_text()

注意:我不想只截断字符串,因为我希望这段代码具有一定的可重用性。
最好的方法是裁剪掉跨度范围内的任何文本的代码。

最佳答案

您可以使用 extract() 删除所有span标签:

for line in soup.find_all('h1',attrs={'itemprop':'name'}):
    [s.extract() for s in line('span')]
print line.get_text()
# => New Men's Genuine Leather Bifold ID Credit Card Money Holder Wallet Black

关于python - beautifulsoup .get_text()对于我的HTML解析而言不够具体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31462360/

10-10 22:47