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

标签 python web-scraping beautifulsoup

我正在尝试使用 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']

关于python - 如何使用 beautifulsoup 在 span 标签之间进行抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29110820/

相关文章:

python-3.x - http.client.ResponseNotReady : Idle

python - 如何编写一个 python 程序,从给定的下拉菜单中选择所有可能的组合,从网站上获取结果 'scrapes' ?

python - BS4 从具有相同类的不同 div 中获取值(value)

python - 关闭BeautifulSoup困惑编码置信度输出

python - 如何在 numpy/scipy 中按行计算矩阵?

python - 如何将 JSON 文件解析为 Python 列表

python - 如何获取scrapy失败的URL?

Python 美丽汤 : Retrieving review related information from Google Play Store

python __init__ 参数变成一个元组

python - 如何构建一个通用函数来打印 Python 3.3 中先前列表的属性列表?