Requests20170928
来源:互联网 发布:淘宝时间是北京时间吗 编辑:程序博客网 时间:2024/06/06 17:07
HTTP协议:
URL格式:http://host:port[path]
host:合法的Internet主机域名或IP地址
path:请求资源的路径
URL是通过HTTP协议存取资源的Internet路径。
requests库的主要方法:
1、r = requests.request():构造一个请求,支撑以下各方法的基础方法
2、r = requests.get():获取HTML网页的主要方法
3、r = requests.head():获取HTML网页头部信息的方法
4、r = requests.post():向网页提交post方法,请求向URL位置后加新数据
5、r = requests.put():向网页提交put方法,请求向URL位置后加新数据,覆盖原资源
6、r = requests.patch():向网页提交局部修改请求
7、r = requests.delete():向网页提交删除请求
参数:
requests.request(method, url, **kwargs):
**kwargs:控制访问参数(13个),可选
1、params:字典,作为参数增加到url中
2、data:字典或文件对象,作为request的内容,不放在URL链接中
3、**json:**JSON格式数据,作为request内容
4、headers:HTTP定制头,字典(可模拟浏览器)
5、files:字典类型,传输文件,作为request内容
6、timeout:设定访问时间,单位秒
例1:爬取京东商品信息
import requestsurl='http://...'try: kv = {'user-agent':'Mozilla/5.0') r = requests.get(url,headers=kv) #更换头部,模拟浏览器发起请求 r.raise_for_status() #如果返回状态码为200,不产生异常;否则产生异常 r.encoding=r.apparent_encoding print(r.text[:1000]) #取前1000个字符的信息except: print("失败")
例2:百度搜索关键词提交
#百度关键词搜索接口:http://baidu.com/s?wd=keyword
import requestskeyword = "python"try: kv = {'wd':keyword} r = requests.get("http://baidu.com/s",params=kv) print(r.request.url) r.raise_for_status()except: print("失败")
例3:图片
import requestsimport osurl = "http://..."root = "D://pics//"path = root + url.split('/')[-1] #存储文件路径,用URL中的部分作为图片名try: if not os.path.exists(root): #判断根目录是否存在,如果不存在创建一个 os.mkdir(root) if not os.path.exists(path): #判断文件是否存在,如果不存在执行以下代码 r = requests.get(url) with open(path, 'wb') as f: f.write(r.content) #将文件用二进制形式存储 f.close() print("保存成功") else: print("文件已存在")except: print("爬取失败")