Beautiful Soup学习

使用pyquey时碰到多值属性没办法处理的情况,想起了BS4可以处理这种情况,于是大概回顾了一下BS4的文档,把温习的知识点写到博客,以便以后查阅。

bs4官方文档地址点击打开链接

一、bs4对象种类:

1、Tage 相当于htm文档中的标签,和标签一样,它有name和attribute属性,通过标签名.name和标签名.attribute访问。

2、 NavigableString对象,可遍历的字符串,通过tag.string访问,该对象是标签中的字符串对象,支持BS4中遍历和搜索文档树种的一些方法(不支持find)

3、BeautifulSoup 对象表示的是一个文档的全部内容.大部分时候,可以把它当作 Tag 对象,它支持 遍历文档树 搜索文档树 中描述的大部分的方法,没有name和attribute属性。

4、注释及特殊字符串


二、过滤器类型:过滤器其实就是传入选择方法中的参数的类型,可以使字符串、正则表达式、列表、Ture和方法

1、字符串,一般是标签名

2、正则表达式,使用re模块的match()方法匹配符合模式的文档

3、列表,返回与列表中元素一致的文档内容

4、Ture,可以匹配任何值

5、方法,定义一个方法,官方文档例子解释的很清楚


三、搜索文档树 find_all()和find()

find_all( name , attrs , recursive , text , **kwargs )

1、name 参数可以查找所有名字为 name 的tag,字符串对象会被自动忽略掉.

2、kewords参数,用来通过制定属性名来搜索文档

3、attrs参数,通过赋值一个字典给该参数可以查找一些不能通过keywords参数搜索的属性

4、recursive  调用 tag的 find_all() 方法时,Beautiful Soup会检索当前tag的所有子孙节点,如果只想搜索tag的直接子节点,可以使用参数 recursive=False

5、text参数用来搜索相匹配的文本内容



find_all() 几乎是Beautiful Soup中最常用的搜索方法,所以我们定义了它的简写方法. BeautifulSoup 对象和 tag 对象可以被当作一个方法来使用

soup.find_all("a")
soup("a")
以上两种搜索结果是一样的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值