爬虫之BeautifulSoup4介绍与使用

  1. bs4简介
    1.1 基本概念
    Beautiful Soup 是一个可以从HTML或XML文件中提取数据的网页信息提取库
    1.2 源码分析
    • github下载源码
    • 安装
    • pip install lxml
    • pip install bs4
  2. bs4的使用
    2.1 快速开始
    html_doc = “”"
The Dormouse's story

The Dormouse's story

Once upon a time there were three little sisters; and their names were Elsie, Lacie and Tillie; and they lived at the bottom of a well.

...

""" # 获取bs对象 bs = BeautifulSoup(html_doc,'lxml') # 打印文档内容(把我们的标签更加规范的打印) print(bs.prettify()) print(bs.title) # 获取title标签内容 The Dormouse's story print(bs.title.name) # 获取title标签名称 title print(bs.title.string) # title标签里面的文本内容 The Dormouse's story print(bs.p) # 获取p段落 2.2 bs4的对象种类 • tag : 标签 • NavigableString : 可导航的字符串 • BeautifulSoup : bs对象 • Comment : 注释 3. 遍历树 遍历子节点 bs里面有三种情况,第一个是遍历,第二个是查找,第三个是修改 3.1 contents children descendants • contents 返回的是一个列表 • children 返回的是一个迭代器通过这个迭代器可以进行迭代 • descendants 返回的是一个生成器遍历子子孙孙 3.2 .string .strings .stripped strings • string获取标签里面的内容 • strings 返回是一个生成器对象用过来获取多个标签内容 • stripped strings 和strings基本一致 但是它可以把多余的空格去掉 4. 遍历树 遍历父节点 parent 和 parents • parent直接获得父节点 • parents获取所有的父节点 5. 遍历树 遍历兄弟结点 • next_sibling 下一个兄弟结点 • previous_sibling 上一个兄弟结点 • next_siblings 下一个所有兄弟结点 • previous_siblings上一个所有兄弟结点 6. 搜索树 • 字符串过滤器 • 正则表达式过滤器 我们用正则表达式里面compile方法编译一个正则表达式传给 find 或者 findall这个方法可以实现一个正则表达式的一个过滤器的搜索 • 列表过滤器 • True过滤器 • 方法过滤器 7. find_all() 和 find() 7.1 find_all() • find_all()方法以列表形式返回所有的搜索到的标签数据 • find()方法返回搜索到的第一条数据 • find_all()方法参数 def find_all(self, name=None, attrs={}, recursive=True, text=None, limit=None, **kwargs): • name : tag名称 • attr : 标签的属性 • recursive : 是否递归搜索 • text : 文本内容 • limli : 限制返回条数 • kwargs : 关键字参数 7.2 find_parents() find_parent() find_next_siblings() find_next_sibling() • find_parents() 搜索所有父亲 • find_parrent() 搜索单个父亲 • find_next_siblings()搜索所有兄弟 • find_next_sibling()搜索单个兄弟 7.3 find_previous_siblings() find_previous_sibling find_all_next() find_next() • find_previous_siblings() 往上搜索所有兄弟 • find_previous_sibling() 往上搜索单个兄弟 • find_all_next() 往下搜索所有元素 • find_next()往下查找单个元素 8. 修改文档树 • 修改tag的名称和属性 • 修改string 属性赋值,就相当于用当前的内容替代了原来的内容 • append() 像tag中添加内容,就好像Python的列表的 .append() 方法 • decompose() 修改删除段落,对于一些没有必要的文章段落我们可以给他删除掉
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值