urlib提供了一系列用于操作URL的功能
· urllib.request模块是用来打开和读取URL的;
· urllib.error模块包含一些有urllib.request产生 的错误,可以使用try进行捕捉处理;
· urllib.parse模块包含了一些解析URLs的方法
GET:
urllib的request模块可以非常方便地抓取URL内容,也就是发送一个GET请求到指定的页面,然后返回HTTP的响应
POST:
用来向目的服务器发出请求,要求它接受被附在请求后的实体,并把它当作请求队列中请求URL所指定资源的附加新子项。比如网页上的注册、登录等等都是POST请求。
HTTP状态码主要是为了标识此次HTTP请求的运行状态
常见状态码:
- 100~199:表示服务器成功接收部分请求,要求客户端继续提交其余请求才能完成整个处理过程。
- 3xx:重定向
- 301:永久重定向
- 302:临时重定向
- 4xx:服务器错误
- 400:错误请求
- 401:未授权
- 403:服务器拒绝访问
- 404:找不到路径
- 405:请求方式不被允许
- 408:请求超时
- 5xx:服务器错误
- 500:服务器内部错误
- 501: 服务器不具备完全请求的功能
- 503:服务器不可用
请求头:
HTTP头部信息由众多的头域组成,每个头域又一个域名、冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空白符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。
- 常见的请求头参数:
User-Agent、Cookie、Referer (页面跳转处)、Host (主机和端口号) 、X-Requested-With: XMLHttpReques(表示是一个Ajax异步请求)、Connection、Upgrade-Insecure-Requests、Accept (传输文件类型)、Accept-Encoding(文件编解码格式)
paser:
- parse.urlencode():将字典类型的参数转为url编码格式
- parse.parse_qs():将url编码格式的字符串转化为字典类型
- parse.quote()将中文字符转为url编码的字符
- parse.unquote()将url编码的字符转换为中文字符
- parse.urljoin将不完整的url参照基类url,拼接完整
- parse.urlparse():将url进行拆分
- parse.urlunparse():将url的各个部分合并为一个完整的url
error:
所有urllib请求的异常基类,所有请求过程中的异常都可以通过这个异常捕获到,可以通过reason属性来查看发生异常的原因
正则:
- . 匹配除了换行符之外的任意字符
- \d 匹配数字0-9 =>[0-9] => ^\D
- \D 匹配非数字
- \s 匹配空白字符(空格 \n \r \t)
- \S 匹配非空白字符
- \w 匹配单词字符[a-zA-Z0-9_]
- \W 匹配非单词字符
- ^ 以…开头
- $ 以…结尾
- [0-9a-z] :表示匹配数字0~9,字母a~z
- [^a-z] : 不匹配a-z之间的字符
- #多字符匹配,贪婪模式
- 匹配*号前的字符任意次数
- +匹配+号前的字符至少一次
- ?匹配?号前的字符0~1次
- #多字符匹配,非贪婪模式 (abcdeabcde) e
*?
+?
??
| 或
() 分组