爬虫学习笔记-BeautifuSoup

from bs4 import BeautifulSoup
soup=BeautifulSoup(‘

data

’,解析器)
解析器常用的,包括:
‘html,parser’:html解析器
‘lxml’:lxml解析器

BS对内容上进行遍历:
.content 子节点的列表
.children 子节点的迭代类型
.descendants 子孙节点的迭代类型
.parent 节点的父亲标签
.parents 节点的先辈标签,用于循环遍历先辈节点
.next_sibling 返回按照HTML文本顺序的下一个平行节点标签
.previous_sibling 返回按照HTML文本顺序的上一个平行节点标签
.next_siblings 返回按照HTML文本顺序的后续所有平行节点标签
.previous_siblings 返回按照HTML文本顺序的前序所有平行节点标签

平行遍历:for siblings in soup.a.next_siblings:

prettify()方法:让输入的html内容以更加友好的方式表现出来。

提取信息的一般方法:
法一:完整解析信息标记的行程,再提取关键信息,主要有XML,JSON,YAML等。
法二:无视标记类型,直接搜索关键信息。对文本信息查找函数。
法三:两者融合。需要标记解析器及文本查找函数。

例子:提取HTML所有的url链接。
(1)搜到所有的标签
(2)解析标签

for link in soup.find_all('a'):
     print(link.get('href'))

find_all(name,attrs,recursive,string,**kwargs)
name 参数可以查找所有名字为 name 的tag,除此之外的字符串对象会被自动忽略掉。

如果一个指定名字的参数不是内置的参数名,在搜索的时候会把该参数当作指定名字tag的属性来搜索。如果包含一个名字为 id 的参数,Beautiful Soup会搜索每个tag的”id”属性.

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值