在爬虫的世界里,数据解析占用很重要的位置

数据解析原理:

  1. 标签定位
  2. 提取标签、标签属性中存储的数据值

bs4数据解析原理:

  • 1.实例化一个BeautifulSoup对象,并且将页面原码数据加载到该对象中
  • 2.通过调用BeautifulSoup对象中相关的属性或方法进行标签定位和数据提取

通过上述描述。我们需要安装所需要的库文件。执行如下:

环境安装:

pip install bs4pip install lxml

使用时候导入包:

from bs4 import BeautifulSoup

我们先来熟悉bs4的对象中相关的属性:

(1)根据标签名查找- soup.a   只能找到第一个符合要求的标签
(2)获取属性- soup.a.attrs  获取a所有的属性和属性值,返回一个字典- soup.a.attrs['href']   获取href属性
(3)获取其标签内的内容- soup.a.string- soup.a.text- soup.a.get_text()【注意】如果标签还有标签,那么string获取到的结果为None,而其它两个,可以获取文本内容
(4)find:找到第一个符合要求的标签- soup.find('a')  找到第一个符合要求的- soup.find('a', title="xxx")- soup.find('a', alt="xxx")- soup.find('a', class_="xxx")- soup.find('a', id="xxx")
(5)find_all:找到所有符合要求的标签- soup.find_all('a')- soup.find_all(['a','b']) 找到所有的a和b标签- soup.find_all('a', limit=2)  限制前两个
(6)根据选择器选择指定的内容select:soup.select('#feng')- 常见的选择器:标签选择器(a)、类选择器(.)、id选择器(#)、层级选择器- 层级选择器:div .dudu #lala .meme .xixi  下面好多级div > p > a > .lala          只能是下面一级【注意】select选择器返回永远是列表,需要通过下标提取指定的对象

实例演示:

from bs4 import BeautifulSoupimport requestsurl ="https://www.shicimingju.com/book/sanguoyanyi.html"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)'' Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.74'
}result = requests.get(url=url,headers=headers)
result.encoding ="utf-8"
result_text = result.text# 将内容存储到html中去
# with open('shici.html',mode='w',encoding='utf-8') as f:
#     f.write(result_text)# 开始使用bs4 进行数据解析(这里lxml是解析器的一种。还有其他解析方式,html.parse,xml,html5lib等)
soup = BeautifulSoup(result_text,'lxml')print(soup.title.text);  #查找标签下的文本

上面执行一下,得到的就是第一个title标签的文本:

下面的代码就是获取唯一元素的代码和文本:

print(soup.find('div',id='top_left_menu'))
print(soup.find('p',class_='des').text)

获取元素下批量元素下的内容:

book_mulu = soup.find('div',class_="book-mulu").find_all('a')
for muli in book_mulu:print(muli.text)

也可以通过select选择器进行选择:

lists = soup.select('div#top_right_nav >ul>li>a')list_content =[]
for i in lists:list_content.append(i.attrs['data-cate'])print(list_content)

使用bs4解析数据,第一步就是将html转为bs4.BeautifulSoup的类型,然后通过find方法找到内容具体的标签,最后再通过select方法进行选择相关所需内容。多多练习就会使用。其实需要有一定的前端知识。

Python数据分析的bs4用法相关推荐

  1. python 数据分析模块_Python数据分析pandas模块用法实例详解

    本文实例讲述了Python数据分析pandas模块用法.分享给大家供大家参考,具体如下: pandas pandas10分钟入门,可以查看官网:10 minutes to pandas 也可以查看更复 ...

  2. bs4用法实例:用Python爬取金融市场数据

    1.获取标签soup.a 获取a标签(第一个) 2.获取属性soup.a.attrs 获取a标签下所有的属性和值,返回的是字典soup.a['name'] 获取a标签下的name属性 3.获取内容so ...

  3. python pandas 分类汇总用法_python数据分析之pandas常用命令整理

    原标题:python数据分析之pandas常用命令整理 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型 ,提供了高效地 ...

  4. python 数据分析之 HTML文件解析

    python 数据分析之 HTML文件解析 一 :Html 1. Html 理解 2. Html 介绍 3. Html 构成 4. HTML结构 介绍 1> HTML文件结构 A: 文档类型声明 ...

  5. python数据分析要学什么_python数据分析学什么?python数据分析入门

    有很多没有基础的新手想学习python数据分析,却在纠结python数据分析难不难学?下面万古网校小编给大家整理了资料,为各位分享! 1.python难不难? Python可以说是目前比较主流而且易学 ...

  6. python数据分析基础 余本国_Python数据分析基础

    本书根据作者多年教学经验编写, 条理清楚, 内容深浅适中, 尽量让读者从实例出发, 结合课后练习, 少走弯路.本书涉及的内容主要包括Python数据类型与运算.流程控制及函数与类.Pandas库的数据 ...

  7. 1行代码实现Python数据分析:图表美观清晰,自带对比功能丨开源

    公众号关注 "视学算法" 设为 "星标",DLCV消息即可送达! 萧箫 发自 凹非寺 转自 | 量子位 你是否也在朋友圈看过这样的小广告: 「你要悄悄学Pyth ...

  8. 一本Python数据分析入门宝藏书,快藏不住了!

    入门数据分析最简单的途径就是去学习 Python 生态系统中,最流行也是最基础的库之一:Pandas,尤其对于从 Excel 转向 Python 的朋友来说,从效率到功能会发现很多惊喜. 为什么要使用 ...

  9. 0代码就能做Python数据分析,这个Jupyter插件,用起来就像Excel一样简单

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 加载一个Jupyter插件后,无需写代码就能做数据分析,还帮你生成相应代码? 没错,只需要加载这个名为Mito的小工具包,用Python做数 ...

最新文章

  1. Kaggle心得(一)
  2. 每天一点点之vue框架开发 - 部署到线上
  3. 将JPG文件作为EXE执行
  4. Codeforces 666E. Forensic Examination
  5. 读取nas_NAS怎么玩?除了存放小姐姐,它竟然还有这些功能
  6. LeetCode-70 爬楼梯
  7. ThinkpadT470接通电源开机显示电量0%充不进电且电源指示灯不亮的解决办法
  8. Go 语言论坛系统 bbs-go
  9. ExtJS实战(1)-准备工作和界面赏析
  10. 2020低压电工模拟考试及低压电工复审模拟考试
  11. SMTP的几个端口的比较
  12. 第一章:状态化流处理概述
  13. 爬取某在线恶意软件仓库病毒文件进行分析
  14. 这几款视频语音转文字软件你值得拥有
  15. 12306bypass推送
  16. 探讨地铁区间隧道应急照明设计方案
  17. c++ mfc实现中英文菜单的动态切换
  18. 谈谈promise,谈谈微任务
  19. Android imagebutton美化+edittext美化 实现登录界面美化
  20. 15个针对初学者的Python项目创意

热门文章

  1. git 用idea打tag
  2. python turtle 库绘制简单魔法阵
  3. 软件和 IT 服务成美国收入最高行业;黑客组织 OurMine 宣称攻陷维基解密网站
  4. 众安在线荣获第十届中国证券金紫荆“最佳投资者关系上市公司”奖
  5. HotSpot 是啥?
  6. 量子通信技术和量子计算机,我国的量子通信技术,走在世界前沿,但是量子计算机还需加把劲!...
  7. 政务中台研究目的建设目标,建设意义,技术创新点,技术效果
  8. 警方可以通过智能手机来追踪简易爆炸装置
  9. Python-两个列表取交集、并集、差集(编写了一个两个文件取交集的小工具)
  10. 电子商务设计师书籍的记录