目录
一、urllib
1、request简介
1.1 urlopen
1.2 data参数设计
1.3 timeout参数
1.4 Request方法
1.5 高级用户(Cookie、代理)
身份认证:
代理:
Cookie:
2、urllib——error模块
2.1 URLerror模块
2.2 HTTPError
3、urllib——parse模块
3.1 urlparse方法
3.2 urlunparse方法
3.3 urlsplit方法
3.4 urlunsplit方法
3.5 urlencode方法
3.6 parse_qs方法
3.7 parse_qsl方法
3.8 quote方法
3.9 unquote方法
3.10 urljion
4、urllib——robotparser模块
4.1 Robots协议
4.2 爬虫名称
4.3 robotparser
二、 requests
1 request请求介绍
2 GET请求
3、抓取网页信息
4、抓取二进制数据
5、添加请求头
6 POST请求
7 响应
8 上传文件
9 Cookie设置
10 session维持
11 SSL证书认证——verify参数
12 超时设置
13 身份验证
14 代理设置——proxies
15 Prepared Request
三、正则表达式
1 常用正则表达式的匹配规则
正则表达式——只保留中文/汉字字符(过滤非汉字字符
2 re库
2.1 match
2.2 匹配目标
2.3 通用匹配
2.4 贪婪和非贪婪
2.5 修饰符
2.6 转移匹配
2.7 search匹配
2.8 findall方法
2.9 sub方法
2.10 compile方法
四、httpx的使用
1 httpx基本用法
2 Client对象
3 HTTP/2.0
4 支持异步请求
五,Python logging 模块之 logging.basicConfig 用法和参数详解
1.1. logging 模块简介
2 logging.basicConfig(**kwargs)
1.4 使用文件(filename)保存日志文件
1.5 设置日志中的时间格式
六、python——json
1 JSON介绍
1.1 json介绍
1.2 json特点
1.3 json 文件的处理
1.4 json语法规则
1.5 json
1.6 json文件的书写
1.7 读取json文件的方法(json. load)
2 json常用函数
2.1 load和loads
七 python——os库
1 os库介绍
2 os使用
3 os库的常用方法
4 操作目录
5 操作路径
八 python——sys库
1 sys概述
2 sys使用
2.1 sys查看
2.2 sys常用属性
2.3 sys常用方法
九、 爬取静态网页实例
1 要求
2 yield 用法
3 测试代码
4 爬取壁纸实例(自己编写的实例,暴力的正则匹配,main函数测试的时候使用break)
十、XPath库
1 XPath常用规则
2 XPath用例
3 匹配所有节点
4 子节点
5 父节点
6 属性匹配
7 文本获取
8 属性获取
9 属性多值匹配
10 多属性匹配
11 按序选择
12 节点轴选择
十一、Beautiful Soup
1 Beautiful Soup简洁
2 解释器
3 Beautiful Soup的基本使用
4 节点选择器
5 提取信息
5.1 获取名称
5.2 获取属性
5.3 获取内容
5.4 嵌套选择
5.5 关联选择
5.6 父节点和祖先节点
5.7 兄弟节点
5.8 提取信息
6 方法选择器
6.1 find_all方法
7 CSS选择器
7.1 嵌套选择
7.2 获取属性
7.3 获取文本
十二、pyquery
1 初始化
1.1 URL初始化
1.2 文件初始化
2 基本CSS选择器
3 查找节点
4 查找父节点
5 兄弟节点
6 遍历节点
7 获取信息
7.1 获取属性
7.2 获取文本
8 节点操作
8.1 add_class和remove_class方法
8.2 attr,text和html
8.3 remove方法
9 伪类选择器
十三、 parsel库
1 parsel简介
2 parsel初始化
3 匹配节点
4 提取文本
5 提取属性
6 正则提取
十四、总结
request是最基本的HTTP请求模块,可以模拟请求的发送,其过程与在浏览器中输入网址1然后回车一样,只要给库方法传入URL以及额外的参数,就可以模拟实现发送请求的过程。
rullib.request模块可以模拟浏览器的请求发起过程,同时还具备处理授权验证(authentication)、重定向(redirection)、浏览器Cookie等功能。
基本写法如下:
import urllib.request
response = urllib.request.urlopen("https://www.python.org/")
print(response.read().decode('utf-8'))
该方法为GET请求方法。使用type方法得到响应的类型:
print(type(response))
输出:
所以响应是一个HTTPResponse类型的对象。
使用方法输出响应的状态码和响应的头信息:
print(response.status) #得到响应的状态码
print(response.getheaders()) #得到响应的响应头信息
print(response.getheader("Server")) #获取响应头的键为Server的值
urlopen的API用法:
response = urllib.request.Request(url, data = None, [timeout]*,cafile = None,capath = None,cadefault = False,context = None)
data参数是可选的,在添加该参数时,需要使用bytes方法将参数转化为字节流编码格式的内容,即bytes类型。如果传递了data参数,则请求方方式为GET,而不是POST了。
实例:
import urllib.request
import urllib.parse
data = bytes(urllib.parse.urlencode({'name':'germey'}), encoding = 'utf-8')
response = urllib.request.urlopen('https://www.httpbin.org/post', data = data)
print(response.read().decode('utf-8'))
得到结果:
{ "args": {}, "data": "", "files": {}, "form": { "name": "germey" }, "headers": { "Accept-Encoding": "identity", "Content-Length": "11", "Content-Type": "application/x-www-form-urlencoded", "Host": "www.httpbin.org", "User-Agent": "Python-urllib/3.11", "X-Amzn-Trace-Id": "Root=1-64997bdd-011711375cc64ba54dba4056" }, "json": null, "origin": "1.202.187.118", "ur