http协议:
-概念:就是服务器和客户端进行数据交互的一种形式
常用请求头信息
-User-Agent:请求载体身份标识
-Connection:请求完毕后,是断开连接还是保持连接
常用响应头信息
-Content-Type:服务器响应回客户端的数据类型
https协议:
安全的http(超文本)传输协议
加密方式:
-对称密钥加密
-非对称密钥加密
-证书秘钥加密
requests模块
-urllib模块
-requests模块
requests模块:python中原生的一款基于网络请求的模块,功能非常的强大 简单便捷 效率极高
作用:模拟浏览器发送请求
如何使用:(requests模块的编码流程)
制定url
-发起请求
-获取响应数据
-持久化存储
数据解析的分类:
-正则
-bs4
-xpath(***)
数据解析原理概述:
-解析的局部的文本内容都会在标签之间或者标签对应的属性中进行存储
-1.进行指定标签的定位
-2.标签或者标签对应的属性中存储的数据值进行提取(解析)
bs4进行数据解析
数据解析的原理:
1.标签定位
-2.提取标签、标签属性中存储的数据值
-bs4数据解析的原理
-1.实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中
-2.通过调用BeautifulSoup对象中相关的属性或者方法进行标签定位和数据提取
对象实例化:
1.将本地的html文档中的数据加载到该对象中
fp = open(‘./text.html’,’r’,encoding=’utf-8’)
Soup = BeatifulSoup(fp,’lxml’)
-2.将互联网上获取的页面源码加载到该对象中
Page_text=response.text
Soup=BeatifulSoup(page_text,’lxml’)
-提供的用于数据解析的方法和属性:
-soup.tagName:返回的是文档中第一次出现的tagName对应的标签
-soup.find():
-find(‘tagName’):等同于soup.div
-属性定位:
-soup.find(‘div’,class_/id/attr=’song’)
-soup.find_all(‘tagName’):返回复核要求的所有标签(列表)
-select:
-select(‘某种选择器(id,class,标签......选择器)’),返回的是一个列表
-层级选择器:
-soup.select(‘.tang>ul>li>a’):>标识的是一个层级
-oup.select(‘.tang>ul a’):空格标识的多个层级
-获取标签之间的文本数据:
-soup.a.text/string/get_text()
-text/get_text():可以获取某一个标签中所有的文本内容
-string:只可以获取该标签下面直系的内容
-获取标签中的属性值
-soup.a[‘href’]
-
Xpath解析:最长用且最高效的一种解析方式。通用性
-xpath解析原理:
-1.实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象中
-2.调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获
-环境的安装:
-pip install lxml
-如何实例化一个etree对象:
from lxml import etree
-1.将本地的html文档中的源码数据加载到该对象中
etree.parse(filePath)
-2.可以将从互联网上获取的源码数据加载到该对象中:
etree.HTML(‘page_text’)
-xpath(‘xpath表达式’)