from bs4 import BeautifulSoup
import os
fp = open('C:/Users/axyzw/Downloads/爬虫课件/第三章:数据解析./test.html','r',encoding='utf-8')
soup = BeautifulSoup(fp,'lxml')

源文件

<html lang="en">
<head><meta charset="UTF-8" /><title>测试bs4</title>
</head>
<body><div><p>百里守约</p></div><div class="song"><p>李清照</p><p>王安石</p><p>苏轼</p><p>柳宗元</p><a href="http://www.song.com/" title="赵匡胤" target="_self"><span>this is span</span>宋朝是最强大的王朝,不是军队的强大,而是经济很强大,国民都很有钱</a><a href="" class="du">总为浮云能蔽日,长安不见使人愁</a><img src="http://www.baidu.com/meinv.jpg" alt="" /></div><div class="tang"><ul><li><a href="http://www.baidu.com" title="qing">清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村</a></li><li><a href="http://www.163.com" title="qin">秦时明月汉时关,万里长征人未还,但使龙城飞将在,不教胡马度阴山</a></li><li><a href="http://www.126.com" alt="qi">岐王宅里寻常见,崔九堂前几度闻,正是江南好风景,落花时节又逢君</a></li><li><a href="http://www.sina.com" class="du">杜甫</a></li><li><a href="http://www.dudu.com" class="du">杜牧</a></li><li><b>杜小月</b></li><li><i>度蜜月</i></li><li><a href="http://www.haha.com" id="feng">凤凰台上凤凰游,凤去台空江自流,吴宫花草埋幽径,晋代衣冠成古丘</a></li></ul></div>
</body>
</html>
#soup.tagName:返回的是文档中第一次出现的tagName对应的标签
print(soup.a)#a标签很多组,只返回了一组
<a href="http://www.song.com/" target="_self" title="赵匡胤">
<span>this is span</span>宋朝是最强大的王朝,不是军队的强大,而是经济很强大,国民都很有钱</a>
print(soup.div)
<div>
<p>百里守约</p>
</div>
#find('tagName'):等同于soup.div
print(soup.find('div'))
<div>
<p>百里守约</p>
</div>
#属性定位 soup.find('div',class_/id/attr='song')
print(soup.find('div',class_='song'))# class需要加下划线,不加的话不代表属性
<div class="song">
<p>李清照</p>
<p>王安石</p>
<p>苏轼</p>
<p>柳宗元</p>
<a href="http://www.song.com/" target="_self" title="赵匡胤">
<span>this is span</span>宋朝是最强大的王朝,不是军队的强大,而是经济很强大,国民都很有钱</a>
<a class="du" href="">总为浮云能蔽日,长安不见使人愁</a>
<img alt="" src="http://www.baidu.com/meinv.jpg"/>
</div>
#soup.find_all('tagName'):返回符合要求的所有标签(列表)
print(soup.find_all('a'))
[<a href="http://www.song.com/" target="_self" title="赵匡胤">
<span>this is span</span>宋朝是最强大的王朝,不是军队的强大,而是经济很强大,国民都很有钱</a>, <a class="du" href="">总为浮云能蔽日,长安不见使人愁</a>, <a href="http://www.baidu.com" title="qing">清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村</a>, <a href="http://www.163.com" title="qin">秦时明月汉时关,万里长征人未还,但使龙城飞将在,不教胡马度阴山</a>, <a alt="qi" href="http://www.126.com">岐王宅里寻常见,崔九堂前几度闻,正是江南好风景,落花时节又逢君</a>, <a class="du" href="http://www.sina.com">杜甫</a>, <a class="du" href="http://www.dudu.com">杜牧</a>, <a href="http://www.haha.com" id="feng">凤凰台上凤凰游,凤去台空江自流,吴宫花草埋幽径,晋代衣冠成古丘</a>]
#select('某种选择器(id,class,标签...选择器)'),返回的是一个列表。
print(soup.select('.tang'))
[<div class="tang">
<ul>
<li><a href="http://www.baidu.com" title="qing">清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村</a></li>
<li><a href="http://www.163.com" title="qin">秦时明月汉时关,万里长征人未还,但使龙城飞将在,不教胡马度阴山</a></li>
<li><a alt="qi" href="http://www.126.com">岐王宅里寻常见,崔九堂前几度闻,正是江南好风景,落花时节又逢君</a></li>
<li><a class="du" href="http://www.sina.com">杜甫</a></li>
<li><a class="du" href="http://www.dudu.com">杜牧</a></li>
<li><b>杜小月</b></li>
<li><i>度蜜月</i></li>
<li><a href="http://www.haha.com" id="feng">凤凰台上凤凰游,凤去台空江自流,吴宫花草埋幽径,晋代衣冠成古丘</a></li>
</ul>
</div>]
#soup.select('.tang > ul > li > a'):>表示的是一个层级
print(soup.select('.tang > ul > li > a'))
[<a href="http://www.baidu.com" title="qing">清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村</a>, <a href="http://www.163.com" title="qin">秦时明月汉时关,万里长征人未还,但使龙城飞将在,不教胡马度阴山</a>, <a alt="qi" href="http://www.126.com">岐王宅里寻常见,崔九堂前几度闻,正是江南好风景,落花时节又逢君</a>, <a class="du" href="http://www.sina.com">杜甫</a>, <a class="du" href="http://www.dudu.com">杜牧</a>, <a href="http://www.haha.com" id="feng">凤凰台上凤凰游,凤去台空江自流,吴宫花草埋幽径,晋代衣冠成古丘</a>]
print(soup.select('.tang > ul > li > a')[0])
<a href="http://www.baidu.com" title="qing">清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村</a>
#oup.select('.tang > ul a'):空格表示的多个层级  效果和原本一样
print(soup.select('.tang > ul a')[0])
<a href="http://www.baidu.com" title="qing">清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村</a>
#获取标签之间的文本数据:
#            - soup.a.text/string/get_text()
print(soup.select('.tang > ul a')[0].text)
print(soup.select('.tang > ul a')[0].string)
print(soup.select('.tang > ul a')[0].get_text())
清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村
清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村
清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村
#- text/get_text():可以获取某一个标签中所有的文本内容,不属于直系也能获取
#            - string:只可以获取该标签下面直系的文本内容
print(soup.find('div',class_='song').text)
李清照
王安石
苏轼
柳宗元this is span宋朝是最强大的王朝,不是军队的强大,而是经济很强大,国民都很有钱
总为浮云能蔽日,长安不见使人愁


print(soup.find('div',class_='song').string)#该内容下面没有直系属性
None
#        - 获取标签中属性值:
#            - soup.a['href']
print(soup.select('.tang > ul a')[0]['href'])
http://www.baidu.com

bs4进行数据解析基础教程相关推荐

  1. 爬虫入门—数据解析基础 bs4库使用之红楼梦全文文本爬取

    爬虫入门-数据解析基础 bs4库使用之红楼梦全文文本爬取 Author: Labyrinthine Leo   Init_time: 2021.02.23 Key Words: Spider.Beau ...

  2. 【中科微北斗+GPS模块经纬度数据解析详细教程-附免费代码工程】

    中科微北斗+GPS模块经纬度数据解析详细教程-附免费代码工程 简介 准备工作 PC端需要用到的工具 代码下载地址 GD32F103C8T6最小系统板 代码实现 GD32串口引脚定义如下: 串口的初始化 ...

  3. 大数据入门基础教程系列

    所谓大数据(Big Data),就是需要处理的数据量非常巨大,已经达到了 TB.PB 甚至 EB.ZB 级别,需要成千上万块硬盘才能存储.传统的技术手段在大数据面前不堪一击,只能探索一套新的解决方案. ...

  4. Python 数据可视化基础教程

    安装 install 首先进入python官网安装python 安装matplotlib模块(画图拓展包) 打开电脑命令行cmd输入:pip install matplotlib 输入python - ...

  5. 后端返回number类型数据_Javascript基础教程之数据类型 (数值 Number)

    javascript中想限定一个数的数值,无需限定它是整数还是浮点数型 var num1 = 80 ; var num2 = 55.51; var num3 = -34; var num4 = 9e5 ...

  6. 【SPSS】数据预处理基础教程(附案例实战)

  7. 数据解析学习笔记(正则解析、bs4解析、xpath解析)

    聚焦爬虫:爬取页面中指定的页面内容. - 编码流程: - 指定url - 发起请求 - 获取响应数据 - 数据解析 - 持久化存储 数据解析分类: 正则 bs4 xpath(***) 数据解析原理概述 ...

  8. Python爬虫 之数据解析之bs4

    数据解析之bs4 一.bs4进行数据解析 二.bs4库和lxml库的安装 三.BeautifulSoup对象 四.项目实例 一.bs4进行数据解析 1.数据解析的原理 ① 标签定位. ② 提取标签.标 ...

  9. python爬虫—数据解析

    1 requests库的深度应用 网页信息采集 import requestsif __name__=="__main__":url=""#将参数封装到字典中k ...

最新文章

  1. Swarm 如何存储数据?- 每天5分钟玩转 Docker 容器技术(103)
  2. SQL Server数据库查询速度慢的原因和解决方法
  3. C#后台获取数据库数据--ADO.NET
  4. html引入iview如何修改样式,vue中如何修改iView的样式,
  5. CSS之Responsive设计的关键三步
  6. 如何将对象中的内容按照一定的顺序进行排序
  7. BZOJ3139: [Hnoi2013]比赛
  8. spring.net 对象创建 几种情况
  9. 20190226杂七杂八
  10. python字典统计排序1_python笔记17-字典如何按value排序
  11. 几何画板是哪方面的计算机应用,几何画板主要功能是哪些?了解后就能愉快使用啦...
  12. 【经典算法实现 16】阿克曼函数(非递归实现 代码优化)
  13. Java多线程编程模式实战指南(一):Active Object模式--转载
  14. 使用iptables-persistent永久保存iptables规则
  15. Unity中迭代器和协程的部分概念
  16. OpenCV切割图片
  17. 多元思考科学决策!建立高品质思维的30种模型
  18. 软件质量之道:PCLint之一
  19. SpringBootSecurity与Shiro
  20. Kindling the Darkness: A Practical Low-light Image Enhancer

热门文章

  1. html div css盒子,CSS盒子模式一(DIV布局快速入门)_html/css_WEB-ITnose
  2. 施努卡:锂电池标签表面缺陷检测
  3. react项目中使用esri-loader加载天地图
  4. 开发在线教育直播平台的原因以及好处
  5. 论文解读:Dynamic Connected Networks for Chinese Spelling Check
  6. 阴阳师6.23服务器维护,阴阳师6月23临时停服维护公告 临时维护是什么原因
  7. java简易的贴吧邮箱爬虫
  8. DEAR: Deep Reinforcement Learning for Online Advertising Impression in Recommender Systems
  9. P1dB、IIP3、OIP3、IMD定义及关系
  10. 科研实力是拉卡拉下半场突围的“钥匙”