如何从汤中的 div 跨度中获取文本?

How to get text from a div span in soup?

您好,我正在尝试从漂亮的汤中获取一定范围内的文本,但 return 631 没有。 我想从这个 html.

得到 631
<div class="jsx-3024393758 jsx-3850983025 sold">
  <img alt="sold" src="data:imagesd">
  <span class="jsx-3024393758 jsx-3850983025">
    <span class="jsx-3024393758 jsx-3850983025 sold-text">Sold</span> "631"</span>
</div>

我现在的代码是这样的。

sold = soup.select_one('jsx-3024393758 jsx-3850983025 sold-text','.jsx-3024393758 jsx-3850983025 sold').get('style', '').replace('width:','').text

但是它 return 是空的 请帮忙,如果对我出错的地方做一点解释会很有帮助。

您的代码存在多个问题,这些问题似乎杂乱无章,并未重点关注您的问题。因此,关于您的问题,请花一两分钟阅读 css selectors 以了解链接 select 或


在这种特定情况下,我会 select <div> 并从 stripped_strings 中提取最后一个元素:

list(soup.select_one('div.sold').stripped_strings)[-1]
例子
html = '''
<div class="jsx-3024393758 jsx-3850983025 sold">
  <img alt="sold" src="data:imagesd">
  <span class="jsx-3024393758 jsx-3850983025">
    <span class="jsx-3024393758 jsx-3850983025 sold-text">Sold</span> "631"</span>
</div>
'''
soup = BeautifulSoup(html)

list(soup.select_one('div.sold').stripped_strings)[-1]