beautifulsoup .get_text()对我的HTML解析不够具体

Ror*_*ach 6 html python regex beautifulsoup

鉴于下面的HTML代码,我希望只输出h1的文本,而不是输出"Details about",这是span的文本(由h1封装).

我当前的输出给出:

Details about   New Men's Genuine Leather Bifold ID Credit Card Money Holder Wallet Black
Run Code Online (Sandbox Code Playgroud)

我想要:

New Men's Genuine Leather Bifold ID Credit Card Money Holder Wallet Black
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的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>
Run Code Online (Sandbox Code Playgroud)

这是我目前的代码:

for line in soup.find_all('h1',attrs={'itemprop':'name'}):
    print line.get_text()
Run Code Online (Sandbox Code Playgroud)

注意:我不想仅截断字符串,因为我希望此代码具有一些可重用性.什么是最好的是一些代码,用于裁剪任何由跨度限制的文本.

Wik*_*żew 5

您可以使用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
Run Code Online (Sandbox Code Playgroud)