目录标题
数据解析
聚焦爬虫:爬取页面中指定的页面内容
数据解析分类:正则、bs4、xpath(重点)
数据解析原理:
- 进行指定标签的定位
- 标签或者标签对应属性中存储数据值的提取
1、BeautifulSoup库
1.1 BeautifulSoup库入门
Beautiful soup库:能够对html 或xml进行解析,并提取其中的信息
安装:pip install beautifulsoup4
查看源代码:
法1,手动右击,获取源代码
法2,用request库获取
import requests
r = requests.get("http://python123.io/ws/demo.html")
r.text#即显示源代码
demo = r.text
from bs4 import BeautifulSoup
soup = BeautifulSoup(demo,"html.parser")#进行熬汤
print(soup.prettify()) #成功打印,即解析正确
BeautifulSoup的使用:
两个参数:第一个html格式的信息,第二个解析器
BeautifulSoup是解析、遍历、维护“标签树”的功能库
四种解析类:
1.1.1 BeautifulSoup类的基本元素:
应用:
from bs4 import BeautifulSoup
r = requests.get("http://python123.io/ws/demo.html")
r.text#即显示源代码
demo = r.text
soup = BeautifulSoup(demo,"html.parser")#解析后的内容
soup.title #标签内容,左上方内容
tag = soup.a #a标签即链接标签的内容
print(tag)
soup.a.name #获取标签名字
soup.a.parent.name #获取父标签名字
tag.attrs #标签a的属性,打印出一个字典
tag.attrs['class'] #a属性中class的值
type(tag.attrs) #标签属性的类型--字典
type(tag) #标签的类型---bs4中类型
soup.a.string #a标签的字符串信息
type(soup.a.string) #字符串类型---bs4中类型
sooup.a----获得a标签
a.name—获得标签a的名字
a.sttrs—获得标签属性,返回一个字符串
a.string --标签的字符串
a.comment–可能有注释信息
1.1.2 基于bs4库的HTML内容遍历方法
html信息:
将html换成树形结构:
三种遍历方式:下行遍历、上行遍历、平行遍历
标签树的下行遍历:
content返回列表,其他两个都是迭代类型,需要用在循环中
soup = BeautifulSoup(demo,"html.parser")
soup.head
soup.head.contents #输出是列表类型
soup.body.contents
len(soup.body.contents)
标签树的上行遍历:
soup = BeautifulSoup(demo,"html.parser")
soup.title.parent #title标签的父亲
soup.html.parent #html标签的父亲,因为html是最高级的,所以其父亲是他本身
soup