BeautifulSoup库-学习笔记

1 BeautifulSoup对象

BeautifulSoup库可以将网页解析为Soup文档,返回值类型是BeautifulSoup,该对象具有很多方法,可用于提取数据。
BeautifulSoup传入的第一个参数是用于解析的网页,第二个参数是解析库的类型,常用类型有"html.parser", “lxml”, “html5lib”。

resp = requests.get(url, headers=headers)
soup = bs4.BeautifulSoup(resp.text, 'html.parser')
print(soup.__class__)
# 输出 <class 'bs4.BeautifulSoup'>

解析器
bs解析器对比

2 BeautifulSoup对象的属性和方法

属性

# <title>The Dormouse's story</title>

soup.title.name
# u'title'

soup.title.string
# u'The Dormouse's story'

soup.title.parent.name
# u'head'

soup.p
# <p class="title"><b>The Dormouse's story</b></p>

soup.p['class']
# u'title'

soup.a
# <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>

方法

  • find_all()
    搜索当前tag的所有tag子节点,并判断是否符合过滤器的条件。返回值类型是bs4.element.ResultSet,是一个 包含所有符合过滤条件的 tag子节点 的列表。
    完整的语法:
    find_all(name="过滤的标签类型", attrs={过滤属性的键值对}, recursive, string, **kwargs)
    
    name 参数:可以查找所有名字为 name 的tag。
    attr 参数:就是tag里的属性。
    string 参数:搜索文档中字符串的内容。
    recursive 参数: 调用tag的 find_all() 方法时,Beautiful Soup会检索当前tag的所有子孙节点。如果只想搜索tag的直接子节点,可以使用参数 recursive=False 。
  • find()
    用法同上,只不过返回的值是筛选到的第一个tag子节点,类型为bs4.element.Tag。
  • selector()方法
    soup.select("从chrome中复制得到")
    

tag节点的属性和方法

  • 属性
    tag.name: tag对应的名称,
    tag.attrs: tag属性的键值对,
    tag['class]:tag属性class键对应的值,还可直接赋值进行修改。
    tag.contents: 将tag的子节点以列表方式输出。
    tag.children: 返回tag的子节点迭代器。
    tag.descendants:可以对所有tag的子孙节点进行递归循环。
  • 方法
    tag.get_text(): 获取tag中间的文本,可能包含子tag,
    tag.get(‘href’): 获取tag里href属性对应的值,等价于tag[‘href’]。

学习文档:

https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html#name

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BeautifulSoup是一个Python,用于从HTML或XML文件中提取数据。它提供了一种简单而灵活的方式来解析和遍历标记文档,并提供了许多有用的方法和属性来获取所需的信息。 在BeautifulSoup学习笔记中,介绍了BeautifulSoup的简介和安装方法。它可以通过pip进行安装,并且有多种解析器可供选择。BeautifulSoup类有五种基本元素,包括Tag标签、Name名字、Attributes属性、NavigableString非属性字符串和Comment注释。它们可以用于遍历标签树的下行、上行和平行遍历。此外,BeautifulSoup几乎覆盖了HTML和XML中的所有内容,还包括一些特殊对象,例如文档的注释部分。 需要注意的是,BeautifulSoup对象本身不是真正的HTML或XML的tag,因此它没有name和attribute属性。但是,在某些情况下,查看它的.name属性是很方便的,因此BeautifulSoup对象包含了一个特殊属性.name,其值为"[document]"。另外,还有一些特殊对象,例如注释对象,可以通过使用BeautifulSoup来处理。 综上所述,BeautifulSoup提供了强大的解析和提取HTML或XML中数据的功能,适用于各种爬虫和数据提取任务。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [BeautifulSoup学习笔记一](https://blog.csdn.net/weixin_43978546/article/details/104858873)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [BeautifulSoup 学习笔记](https://blog.csdn.net/zhengjian0617/article/details/81142540)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值