如何从汤中的 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]
您好,我正在尝试从漂亮的汤中获取一定范围内的文本,但 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]