学习笔记 爬虫篇:BeautifulSoup

一、Beautiful Soup简介

Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库(Python特有),支持多种解析器,其最主要的功能是从网页抓取数据。

二、Beautiful Soup解析原理

总所周知,HTML数据解析的大致原理为:定位标签-提取标签中的文本或者属性值,bs4的原理也一样大致可以分为以下两步骤:

  1. 实例化一个Beautiful Soup对象,然后将待提取的HTML数据加载到该对象中
  2. 通过调用Beautiful Soup对象的相关属性和方法去定位标签和数据提取

三、具体使用方法

  1. 环境安装
pip install beautifulsoup4
pip install lxml
  1. 导入模块
from bs4 import beautifulsoup
  1. 实例化Beautiful Soup
soup = beautifulsoup(解析内容,解析器)

常用解析器:html.parser,lxml,xml,html5lib,html.parser为python内置解析器(html.parser是Python标准库中的HTML解析库,简单易用。lxml性能更高,速度更快,但是它必须单独安装,并且依赖第三方的C语言库)

  1. Beautiful Soup对象的常用方法属性
#获取Tag,通俗点就是HTML中的一个个标签
soup.title                    # 获取整个title标签字段:<title>The Dormouse's story</title>
soup.title.name               # 获取title标签名称  :title
soup.title.parent.name        # 获取 title 的父级标签名称:head
soup.p                        # 获取第一个p标签字段:<p class="title"><b>The Dormouse's story</b></p>
soup.p['class']               # 获取第一个p中class属性值:title
soup.p.get('class')           # 等价于上面
soup.a                        # 获取第一个a标签字段
soup.find_all('a')            # 获取所有a标签字段,返回的是列表,可以对其循环解析
soup.find(id="link3")         # 获取属性id值为link3的字段
soup.a['class'] = "newClass"  # 可以对这些属性和内容等等进行修改
del bs.a['class']             # 还可以对这个属性进行删除
soup.find('a').get('id')      # 获取class值为story的a标签中id属性的值
soup.title.string             # 获取title标签里直系的文本内容
soup.title.get_text()         # 获取title标签里的所有的文本内容(包括子标签的文本内容)
soup.find_all('')
soup.find_all('div',id="even",class_="square") # 获取所有id=even并且class=square属性的div标签
soup.find_all('div',attrs={"id":"even","class":"square"})    # 效果同上
soup.select('.tag > ul > li > a') #使用css选择器,> 表示的是一个层级,返回的是列表
soup.select('.tag > ul a') #使用css选择器,空格表示的是多个层级,返回的是列表,可以对其循环解析
  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值