状态码:
200:访问成功
206:视频传输
403:不允许访问
404:没有找寻此界面
500:服务器错误
数据压缩方式
常用压缩算法:
Content-Encoding:gzip
Content-Encoding:compress
Content-Encoding:deflate
Content-Encoding:identity Content-Encoding:br
# 导包 import urllib.request as ur # read() 是将返回的HTTPResponse对象转换成网站信息以字节的方式返回 ret = ur.urlopen('【要请求的网站地址】').read() print(ret) # 导入到本地文件 with open('html名字','wb') as f: f.write(ret)3.Request对象和URL编码
1> Request对象
参数解析:
# 导包 import urllib.request as ur # Request() 可以封装Hander和Data request = ur.Request('被提取的网站') response = ur.urlopen(request).read() print(response)
2> URL编码
在提取的URL地址中可能会有中文,在python中是不被识别的会被转义,这时我们就可以导入 urllib.parse 模块把他转码过来。
# 导包 import urllib.parse as up # 定义转码的数据 data = { (URl数据) } # URL编码 url_data = up.urlencode( data ) print(url_data) # 解码 ret = up.unquote(url_data) print(ret)4.Request对象之Http Post请求
案例:百度翻译爬虫
import urllib.request as ur import urllib.parse as up import json # 实例化data data = { 'kw':'python' } url_data =up.urlencode(data) # 对 data 编码 request = ur.Request( url='https://fanyi.baidu.com/sug', data=url_data.encode('utf-8') ) response = ur.urlopen(request).read() # print(response) ret = json.loads(response) # print(ret) translate = ret['data'][0]['v'] # 索引取值 print(translate)5.Requst对象之Hander伪装策略
Hander是Request里的参数,Hander 中经常参加两个参数:1,cookie 2,user-agent 用于模拟浏览器登录,来绕过浏览器的反爬策略,常用的是 user-agent 来模拟浏览器访问
user_agent 请求头模板:https://blog.csdn.net/Bocker_Will/article/details/122641248?spm=1001.2014.3001.5502
import urllib.request as ur import user_agent # 导入准备的user_agent request = ur.Request( url='https://edu.csdn.net/', headers={ 'User-Agent':user_agent.get_user_agent_pc() } ) response = ur.urlopen(request).read()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)