Skip to main content
 首页 » 编程设计

python之如何使用 beautifulsoup 在 span 标签之间进行抓取

2025年05月04日99bjzhanghao

我正在尝试使用 python+beautifulsoup 抓取文本。我输入如下代码:

soup.find_all("span")[0] 

这让我:

<span style="margin-right: 0.9em">TEXT1 <span style="color: 
#111111; margin-left: 0.2em">TEXT2 </span>TEXT3 </span> 

这太棒了。但问题是我想提取 TEXT1 , TEXT2 , 和 TEXT3分别地。

我不知道该怎么做。如果我这样做:

soup.find_all("span")[0].find_all("span"), 我只得到

<span style="color: 
#111111; margin-left: 0.2em">TEXT2 </span> 

我认为这是因为这个特定的包含 <span>和 </span> .如何挑选TEXT1 , TEXT2 , 和 TEXT3 ?

请您参考如下方法:

这是一个使用文本属性完成工作的片段。

In [3]: soup = BeautifulSoup('<span style="margin-right: 0.9em">TEXT1 <span style="color:#111111; margin-left: 0.2em">TEXT2 </span>TEXT3 </span>') 
   ...: 
 
In [4]: soup 
Out[4]: <html><body><span style="margin-right: 0.9em">TEXT1 <span style="color:#111111; margin-left: 0.2em">TEXT2 </span>TEXT3 </span></body></html> 
 
In [5]: soup.text 
Out[5]: u'TEXT1 TEXT2 TEXT3 ' 

您也可以剥离和拆分输出。

In [7]: soup.text.strip().split() 
Out[7]: [u'TEXT1', u'TEXT2', u'TEXT3']