python脚本里的语句是
from bs4 import BeautifulSoup import urllib2 response = urllib2.urlopen('http://xxxxxx') html = response.read() soup = BeautifulSoup(html) res = soup.find_all(class_='pro-detail-price')
得到的res是ResultSet类型,print结果是:
[
最低价格:¥4399.0(天猫旗舰店)
如果想在这个ResultSet里找到特定的标签改用什么办法呢? 比如找到4399.0里的4399.0
这么可以吗?
我记得find只会返回第一个匹配到的结果,findAll才会返回ResultSet
所以find结果应该可以直接 res.span.string啊,实在不行就都res[0].span.string吧
find_all()
和find()
都不好用,bs最好用的是select()
,即CSS选择器。你已经获取了一个大框架吧,比如它是soup中的一个Tag,然后:
你这个例子里,
results[0]
就是这个指定的标签了。胡乱试了一下,改成这样的代码输出结果是4399.0,但是希望大神能提供更优的方式,谢谢
在find找到的结果里,可以用CSS选择器select进行下一的了定位查找。