Python 爬虫之数据解析模块bs4基础
介绍:
最近在学Python爬虫,在这里对数据解析模块bs4做个学习笔记。
用途:
bs4用于解析xml文档,而html只是xml的一种
bs4 官方文档地址:
https://www.crummy.com/software/BeautifulSoup/bs4/doc/
学习笔记:
from bs4 import BeautifulSoup
html_doc = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p>
<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class=... ... ... ... ... ... "sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>
<p class="story">...</p>
"""
soup = BeautifulSoup(html_doc,'html.parser') #创建一个BeautifulSoup对象,添加html文件解析器,在不同平台可能不同,在Linux上就不需要
print(soup.prettify()) #美化输出
print(soup.get_text()) #将html_doc变量中保存的全部内容输出(Linux系统会以\n隔开)
print('')
print(type(soup.title))
print(dir(soup.title))
print(soup.title) #获取html标题
<title>The Dormouse's story</title>
print(soup.title.text) #获取html标题内容
"The Dormouse's story"
print(soup.a) #获取a标签(第一个)
<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>
print(soup.a.attrs) #获取第一个a标签的所有属性,组成一个字典
{'href': 'http://example.com/elsie', 'class': ['sister'], 'id': 'link1'}
print(soup.a.attrs['href']) #获取第一个a标签的href属性
'http://example.com/elsie'
print(soup.a.has_attr('class')) #判断class属性是否存在
True
print(soup.p) #获取p标签(第一个)
<p class="title"><b>The Dormouse's story</b></p>
print(soup.p.children) #获取第一个p标签下的所有子节点
<list_iterator object at 0x7fe8185261d0>
print(list(soup.p.children))
[<b>The Dormouse's story</b>]
print(list(soup.p.children)[0])
<b>The Dormouse's story</b>
print(list(soup.p.children)[0].text)
"The Dormouse's story"
print(soup.find_all('a')) #获取所有的a标签
[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>, <a class="sister" href="http://example.com/lacie" id=a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
for a 16c8 in soup.find_all('a'): #遍历所有的a标签
print(a.attrs['href'])
print(soup.find(id='link3')) #获取id=link3的标签
<a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>
print('#'*150)
#支持CSS选择器
#查找类名为story的节点
print(soup.select('.story'))
print('')
print(soup.select('.story a'))
print('')
#查找id=link1的节点
print(soup.select('#link1'))
- Python基础三「json数据解析,文件处理,多模块」
- Python—爬虫之BeautifulSoup模块(解析—提取数据)
- python 跨语言数据交互、json、pickle(序列化)、urllib、requests(爬虫模块)、XML。
- Python 爬虫(以赛马数据为例)之使用BeautifulSoup进行Html解析
- Python3基础 解析json格式的数据,得到一个字典 json.loads()
- Python基础知识——urllib模块在爬虫中的应用
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
- 运维学python之爬虫基础篇(二)urllib模块使用
- python爬虫模块之数据存储模块
- Python数据分析:爬虫框架scrapy基础知识点
- Python基础之模块、数据类型及数据类型转换
- 开始学习python爬虫,xml.dom模块解析xml
- Python数据分析基础模块:Anaconda的安装以及简单使用
- python爬虫基础知识——requests、bs4的使用
- [Python教程] Python 常用基础、常用函数、模块解析
- Python-爬虫6-页面解析和数据提取的方法、正则表达式
- python数据持久存储:pickle模块的基本使用 分类: python python基础学习 python 小练习 2013-06-17 14:41 209人阅读 评论(0) 收藏
- Python使用内置json模块解析json格式数据的方法
- Python学习笔记(一)--Python基础知识:变量、数据类型、模块与字符串
- 大数据实战课程第一季Python基础和网络爬虫数据分析