首页 > 其他 > 详细

BeautifulSoup-bs4的简单使用

时间:2020-01-12 17:20:10      阅读:89      评论:0      收藏:0      [点我收藏+]
# 简单使用:
#     说明:选择器 jquery
#导入from bs4 import BeautifulSoup
#使用方式:可以将一个html文档,转化为一个对象,
# 然后通过对象的方法或者属性去查找指定对象
#转化本地文件soup = BeautifulSoup(open("本地文件"),‘lxml‘)
#转化网络文件soup = BeautifulSoup(open("字符串或者字节类型"),‘lxml‘)

from bs4 import BeautifulSoup

#生成对象
soup = BeautifulSoup(open("xx.html"),lxml)
#打印  这是一个对象
print(soup)
#1、根据签名查找
#可以查找这个对象的所有HTML标签
print(soup.a)#<a href=""...>   a标签
print(soup.div) #div 标签
#2、获取标签中的属性 比如<a href=""...> 中有href和内容两部分属性
#<a href="http://www.baudu.com/meinv.jpg" title="" target="" >这里是内容</a>
print(soup.a[href])
print(soup.a[title])
print(soup.a[target])
print(soup.a[attrs])#找出所有属性和值并返回一个属性字典
#3、获取内容
#<a href="http://www.baudu.com/meinv.jpg" title="" target="" >这里是内容</a>
#以下三个都可以
print(soup.a.string)
print(soup.a.text)
print(soup.a.get_text())
#4、获取一个div中的内容  如下  来区别以上三个方法的不同
# <div>
#     甄姬
#     <p>百里守约</p>
#     <p>李白</p>
#     太乙真人
# </div>
print(soup.a.string)#只能获取标签里面只有文本的情况 标签里有别的标签就获取不到了 结果为None
print(soup.a.text)#这个方法里面有标签也可以获取所有文本内容
print(soup.a.get_text())#这个方法里面有标签也可以  和上一个效果一样
#5、soup.find(‘a‘)
print(soup.find("a"))#找到第一个符合要求的a
print(soup.find("a"),title="限制")#通过第二个参数来限制
print(soup.find("a"),alt="限制")
print(soup.find("a"),class_="限制")#class是关键字不能用,但是可以用class_
print(soup.find("a"),id="限制")

#如果有重复的 需要精确查找 自己定义限定块 再查找 代码如下
#find方法不仅soup可以调用,普通div对象也能调用,
# 会去指定的div里面查找符合要求的节点
div = soup.find(div,class_="第一个限制块")
print(div.find(a,class_="第二个限制条件"))
#6、find_all()  和上面的find差不多
lt = soup.find_all(a)
print(lt,len(lt))#会产生一个列表 ,里面会有几个查找到的元素
div = soup.find_all(div,class_="第一个限制块")
print(div.find_all(a,class_="第二个限制条件"))
print(div.find_all(a,b)
print(div.find_all(a,limit=2)#找到所有取出前2个
#7、select 根据选择器选择指定的内容
#常见选择器:标签选择器、类选择器、id选择器、层级选择器、伪类选择器、属性选择器、组合选择器
#a  标签a
# .dudu 类选择器
# #lala id选择器
# 层级选择器举例  div .dudu #lala .meme .xixi    下面好多级
#建议层级选择器写法:div>p>a>.lala  这样只能找下面一级
print(soup.select(".tang>ul>li>a")[2])  #返回的是列表 这个是取第三个
print(soup.select("#feng")[0].text|[href])#取查找到的第一个  。text并只找文本
#select选择器返回的永远是列表  需要通过下标提取指定的对象,然后获取属性和节点

BeautifulSoup-bs4的简单使用

原文:https://www.cnblogs.com/Qiuzhiyu/p/12182927.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!