网页被抓取下来,通常就是str 字符串类型的对象,要从里面寻找信息,最直接的想法就是直接通过字符串的 find 方法和切片操作:
s = '<p>价格:15.7 元</p>'
start = s.find('价格:')
end = s.find(' 元')
print(s[start+3:end])
# 15.7
这能应付一些极简单的情况,但只要稍稍复杂一点,这么写就会累死人。更通用的做法是使用正则表达式:
import re
s = '<p>价格:15.7 元</p>'
r = re.search('[\d.]+', s)
print(r.group())
# 15.7
正则表达式是处理文本解析的万金油,什么情况都可以应对。但可惜掌握它需要一定的学习成本,原本我们有一个网页提取的问题,用了正则表达式,现在我们有了两个问题。