BeautifulSoup学习笔记

BeautifulSoup学习笔记


安装

pip install beautifulsoup4 # 如果不加4 默认安装的版本是beautifulsoup3

使用

from bs4 import BeautifulSoup4

BeautifulSoup的基本类型:

基本元素说明
Tag标签,最基本的信息组织单元,分别用<>和</>标明开头和结尾
Name标签的名字,<p>…</p>的名字是’p’,格式:<tag>.name
Attributes标签的属性,字典形式组织,格式 <tag>.attrs
NavifableString标签内非属性字符串,<>…</>中的字符串,格式:<tag>.string
Comment标签内字符串的注释部分,一种特殊的Comment类型

例子

htm = """
<div>
    <ul>
        <li class="item-0 item-12" class="item-1"><a href="link1.html">first item</a></li>
        <li class="item-1"><a href="link2.html">second item</a></li>
        <li class="item-inactive"><a href="link3.html">third item</a></li>
        <li class="item-1"><a href="link4.html">fourth item</a></li>
        <li class="item-0"><a href="link5.html">fifth item</a></li>
        <li class="else-0">first item</li>
    </ul>
</div>
"""
soup = BeautifulSoup(htm,'lxml') # 第二个参数如果不填默认是html解析库 也可以设置为'html.parser'
ul = soup.ul # 会返回ul内的源代码,结果如下。如果有需要读取全部源代码时可以使用
#<ul> 
#<li class="item-0 item-12"><a href="link1.html">first item</a></li>
#<li class="item-1"><a href="link2.html">second item</a></li>
#<li class="item-inactive"><a href="link3.html">third item</a></li>
#<li class="item-1"><a href="link4.html">fourth item</a></li>
#<li class="item-0"><a href="link5.html">fifth item</a></li>
#<li class="else-0">first item</li>
#</ul>
# 其他的一些例子
li = soup.ul.li # 默认选取第一个
a = soup.ul.li.a
string = soup.ul.li.a.string
href = soup.ul.li.a['href']
href = soup.ul.li.a.get('href')
all_a = soup.find_all('a') # 返回所有的a标签
all_a = soup('a') # 与上面一行相同,简写
string = soup.find_all('a')[0].string
href = soup.find_all('a')[0].get('href')
a = soup(class_='item-0') # 找到所有属性class 为'item-0'的元素,由于class是python中的关键字,防止问题,所以加下划线
a = soup(class_=re.compile('item-')) # re.compile() 为正则表达式匹配对象,找到所有class为 item-开头的元素
text = soup.ul.get_text() # 取出ul里的所有文本,这个结果里包含\n和"",需要后续用split筛一下

beautifulsoup方法非常简洁,很好用

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、付费专栏及课程。

余额充值