py爬虫自学入门__6(BeautifulSoup库)

# 一、 定义:灵活又方便的网页解析库,处理高效,支持多种解析器。利用它不用编写正则表达式即可方便的实现网页信息

#                    的提取

#         BeautifulSoup支持的解析库:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html(官方文档)

# 二、 基本使用

#

# 三、 标签选择器

#    1> 选择元素

#

#    2> 获取名称

#

#    3> 获取属性

#

# 4> 获取内容

#

#    5> 嵌套选择

#

#    6> 子节点和子孙节点

#        1) soup.p.contents返回p标签的所有子节点

#

#        2) 利用 .children 返回该标签所有子节点的一个迭代器,再利用for循环和enumerate(soup.p.children)方法返回其所有子  #            节点及其索引(html源代码如上)

#

#        3) 利用.descendants以迭代器形式返回标签的所有子孙节点

#

#    7> 父节点和祖先节点

#        1) 利用.parent打印父节点

#

#        2) 利用.parents 打印所有祖先节点

#

#    8> 兄弟节点

#

#

# 四、 标准选择器

#    1> 基本形式:find_all(name, attrs, recursive, text, **kwargs)

#                               可根据标签名、属性、内容查找文档,返回全部元素。

#    2> name(根据标签名查找文档)

#

#

#

# 3> attrs(根据属性查找标签)

#          1)以字典形式向 find_all() 传入参数

#         2)直接将属性本身当作参数传入find_all() ,class是特殊的关键字,需要以class_='xxx'传入

#

#    4> text(根据文本内容查找文档,但是用于元素匹配更加方便)

#

#    5> 【一些查找方法】

#        1)  find(name, attrs, recursive, text, **kwargs)

#

#        2) find_parents() 返回所有祖先节点

#             find_parent()  返回所有父节点

#        3)find_next_siblings() 返回后面所有兄弟节点

#           find_next_sibling()   返回后面第一个兄弟节点

#        4) find_previous_siblings() 返回前面所有兄弟节点

#            find_previous_sibling()   返回前面第一个兄弟节点

#        5) find_all_next() 返回节点后所有符合条件的节点

#            find_next()       返回节点后符合条件的第一个节点

#        6)find_all_previous() 返回节点前符合条件的所有节点

#           find_previous()       返回节点前符合条件的第一个节点

#

# 五、 CSS选择器

#    1> 基本使用: 通过select()直接传入CSS选择器即可完成选择

#

#

#

#    2> 获取属性

#

  3> 获取内容

#

# 六、 总结

#    1、推荐使用lxml解析库,必要时使用html.parser

#    2、标签选择筛选功能弱但是速度快

#    3、建议使用find() 、find_all() 查询匹配单个结果或者多个结果

#    4、如果对CSS选择器熟悉建议使用select()

#    5、记住常用的获取属性和文本值的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值