网络爬虫之数据解析
聚焦爬虫:爬取页面中指定的页面内容
- 编码流程
-指定url
-发起请求
-获取响应数据
-数据解析
-持久化存储
数据解析分类
-正则
-bs4
-xpath 学习重点
数据解析原理概述:
- 解析的局部的文本内容都会在标签之间或者标签对应的属性中进行存储
- 进行指定标签的定位
- 标签或者标签对应的属性中存储的数据值进行提取(解析)
<div class="thumb">
<a href="/article/124317196" target="_blank">
<img src="//pic.qiushibaike.com/system/pictures/12431/124317196/medium/ZQZC0FOCMI4ZPI6S.jpg" alt="糗事#124317196" class="illustration" width="100%" height="auto">
</a>
</div>
1.使用正则进行数据解析
ex='<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'
img_src_list = re.findall(ex,page_text,re.S)
2.bs4进行数据解析
——数据解析的原理
——1.标签定位
——2.提取标签、标签属性中存储的数据值
-bs4数据解析的原理
——1.实例化一个beautifulsoup对象,并且将页面源代码数据加载到该对象中
——2.通过调用beautifulsoup对象中相关属性或方法进行标签定位和数据提取
-环境安装
-pip install bs4
-pip install lxml
-如何实例化beautifulsoup对象:
-1.from bs4 import BeautifulSoup
-对象的实例化
-1.将本地的HTML文档中的数据加载到该对象中
fp = open(’./lunch.html’,‘r’,encoding=‘utf-8’)
soup = BeautifulSoup(fp,‘lxml’)
-2.将互联网上获取的页面源代码加载到该对象中
page_text = response.text
soup = BeautifulSoup(page_text,‘lxml’)
-提供的用于数据解析的方法和属性
-soup.tagName 返回的是html中第一次出现的tagName标签
-属性定位:
-soup.find(‘div’,class_=/id/attr=‘foot1’) class属性要在后面加上_
-soup.find_all(‘tagName’) :返回符合要求的所有标签(列表)
-select:
-select(‘某种选择器(id,class,标签选择器)’),返回的是一个列表
-层级选择器
-soup.select(’#bcont3 > ul > li >div >div’)[0]:>表示的是一个层级
-soup.select(’#bcont3 > ul a’):空格表示多个层级
-获取标签之间的文本数据:
-soup.a.text/string/get_text()
-text/get_text():可以获取某一个标签中所有的文本内容
-string:只可以获取该标签下面直系的文本内容
-获取标签中的属性值
soup.select(’#bcont3 > ul > li div>div ')[0].img[‘width’])
上一篇: 苦瓜的功效与作用都有哪些你知道吗
下一篇: 这是一个静态页面爬虫学习