Beautifulsoup使用

file = open('baidu.html', 'rb')
html = file.read()
bs = BeautifulSoup(html, 'html.parser')
print(bs.title)
print(bs.a)
print(bs.head)

1、获得标签内的字符串

   print(bs.title.string)

2、获得标签内的属性

print(bs.a.attrs)

3、获得整个文档,bs

print(bs)

4、获得注释

print(bs.a.string)
------------------------------------------

更多内容可搜索BeautifulSoup文档
文档的遍历

print(bs.head.contents)#返回一个列表,以标签为单位作为列表元素
print(bs.head.contents[1])  返回指定内容

文档的搜索、定位

1、字符串过滤:会查找与字符串完全匹配的内容

t_list = bs.find_all('a')  查询所有的‘a’标签,'abc'等标签不会查到
print(t_list)

2、正则表达式搜索:使用search方法匹配内容

t_list = bs.find_all(re.compile('a'))   #查询所有符合表达式'a'规则的内容

3、方法:传入一个函数(方法),根据函数的要求来搜索(了解即可)

def name_is_exists(tag):
    return tag.has_attr('name')
#
#
t_list = bs.find_all(name_is_exists)
for item in t_list:
    print(item)

2.kwargs 参数

t_list = bs.find_all(id='head')#id为head的所有内容
t_list = bs.find_all(class_=True)class这一项的所有内容
t_list = bs.find_all(href='https://www.hao123.com/')
t_list = bs.find_all(text='hao123')
t_list = bs.find_all(text=['hao123','地图','贴吧'])
t_list = bs.find_all(text=re.compile(r'hao\d{3}'))

4.limit 参数

t_list = bs.find_all('a', limit=3)  限定3for item in t_list:
    print(item)

css选择器

t_list = bs.select('title')  #通过标签查找
t_list = bs.select('.mnav')  #通过类名查找
t_list = bs.select('#u1')  #通过id查找
t_list = bs.select('a[class="br1"]')  #通过属性查找
t_list = bs.select('head > title')  #通过子标签查找
for item in t_list:
    print(item)
t_list = bs.select('.mnav ~ .bri')  #通过兄弟节点查找,与mnav是兄弟节点的bri标签
print(t_list[0].get_text())  #打印该bri标签的文本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值