python获取<span></span>中的数字
时间: 2024-05-04 19:14:05 浏览: 259
在Python中,你可以使用正则表达式或者BeautifulSoup库来获取HTML标签中的数字。以下是两种方法的示例:
方法一:使用正则表达式
```python
import re
html = '<span>123</span>'
pattern = r'<span>(\d+)</span>'
match = re.search(pattern, html)
if match:
number = match.group(1)
print(number)
```
方法二:使用BeautifulSoup库
```python
from bs4 import BeautifulSoup
html = '<span>123</span>'
soup = BeautifulSoup(html, 'html.parser')
span_tag = soup.find('span')
if span_tag:
number = span_tag.text
print(number)
```
相关问题
python 正在表达式获取<li>共 <span class="color">6,753</span> 条记录</li>中的6,753
同样可以使用正则表达式来提取这个字符串中的数字`6,753`。具体来说,可以先匹配`<li>`标签和`</li>`标签之间的内容,然后再从中提取数字部分。示例如下:
```python
import re
s = '<li>共 <span class="color">6,753</span> 条记录</li>'
match = re.search(r'<li>.*?<span.*?>([\d,]+)</span>.*?</li>', s)
if match:
num_str = match.group(1)
num = int(num_str.replace(',', ''))
print(num) # 输出6,753
else:
print('未找到匹配的字符串')
```
解释一下正则表达式的含义:
- `<li>`:匹配`<li>`标签;
- `.*?`:匹配任意字符,非贪婪模式,即尽可能少地匹配;
- `<span.*?>`:匹配`<span>`标签,其中`.*?`表示匹配`<span>`标签中的任意属性;
- `([\d,]+)`:匹配数字和逗号,其中`[\d,]`表示数字和逗号的字符集,`+`表示匹配一个或多个字符,并将其保存在分组中;
- `</span>`:匹配`</span>`标签;
- `.*?`:同上;
- `</li>`:匹配`</li>`标签。
<div class="priceBox"><p>本套房源的参考总价:<span>395万</span></p>python如何只获取数据‘395万’
可以使用正则表达式来提取数据,示例代码如下:
```
import re
text = '<div class="priceBox"><p>本套房源的参考总价:<span>395万</span></p>'
price = re.findall(r'<span>(\d+万)</span>', text)[0]
print(price) # 输出:395万
```
解释一下代码:
- `re.findall()` 方法可以在字符串中查找所有匹配正则表达式的子串,并返回一个列表。
- `r'<span>(\d+万)</span>'` 是一个正则表达式,它匹配字符串中形如 `<span>数字万</span>` 的子串,并把数字万部分提取出来。
- `[0]` 表示取返回列表的第一个元素,即提取出来的价格数据。
阅读全文