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方法非常简洁,很好用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值