urllib实战与反爬策略
详解Http请求协议
关键字 | 说明 |
---|---|
Request URL | 请求的URL地址 |
Request Method | 请求方法 |
Status Code | 状态码 |
Remote Address | 远端地址 |
Connection | 连接类型 |
Content-Encoding | 数据压缩方式,常用压缩算法:Content-Encoding:zip,Content-Encoding:compress,Content-Encoding:deflate,Content-Encoding:identity,Content-Encoding:br |
Content-type互联网类型:
- text/html : HTML格式
- text/plain :纯文本格式
- text/xml : XML格式
- image/gif :gif图片格式
- image/jpeg :jpg图片格式
- image/png:png图片格式
以application开头的媒体格式类型:
- application/xhtml+xml :XHTML格式
- application/xml : XML数据格式
- application/atom+xml :Atom XML聚合格式
- application/json : JSON数据格式
- application/pdf :pdf格式
- application/msword : Word文档格式
- application/octet-stream : 二进制流数据(如常见的文件下载)
- application/x-www-form-urlencoded : 中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
另外一种常见的媒体格式是上传文件之时使用的:
- multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式
关键字 | 说明 |
---|---|
Accept | 发送端希望接收的数据类型 |
Accept-Encoding | 发送端支持的压缩算法 |
Accept-Language | 发送端支持的语言 |
Cache-Control | 缓存机制 |
Cookie | Cookie |
User-Agent | 用户代理 |
urllib使用案例
CSDN学院首页爬虫案例
import urllib.request as ur
ret=ur.urlopen('https://edu.csdn.net/').read()
print(ret)
with open('edu.html','wb') as f:
f.write(ret)
Requset对象之Get请求与URL编码
Request对象爬CSDN学院首页
import urllib.request as ur
request = ur.Request('https://edu.csdn.net/')
response = ur.urlopen(request).read