requests模块是对urllib的封装,它是一个爬虫,伪装成浏览器向web服务器发起请求,获取响应。不同于上面提到的下载整个网页的形式,requests模块可以通过添加请求头和参数信息来向特定的网页界面发起请求,是爬虫技术的一种局部形式。requests模块通过向服务器发送http请求来获取数据,支持get和post协议请求方式。在爬取过程中,可以通过查询参数、请求头等信息的控制,获取到我们需要的响应信息。同时post方法支持上传等方式获取准确的爬虫数据。1.GET方法:不加任何请求参数1#-*-coding:UTF-8-*-2importrequests34#定义请求的url地址5url="http://httpbin.org"67#使用GET方法发起请求8response=requests.get(url=url)910#打印响应状态,200表示成功11print"responsestatus",response.status_code12#打印网页文本13print"webpagetext:",response.text2,GET方法:addrequestParameter1#-*-coding:UTF-8-*-2importrequests34#定义请求的url接口(需要请求的接口),假设接口http://httpbin.org/get5url="http://httpbin.org/get"67#定义请求头信息(字典类型)8headers={9"Accept":"*/*",10"Accept-Encoding":"gzip",11"User-Agent":"",12}1314#定义请求参数信息(字典类型)15params={'name':'Python集中营','type':'python'}1617#使用GET方式发起请求(添加头信息,添加参数信息)18response=requests.get(url=url,headers=headers,params=params)1920#打印响应状态,200表示成功21print"responsestatus",response.status_code22#打印响应信息23print"responseinformation:",response.content3、POST方法:提交普通数据1#-*-coding:UTF-8-*-2importrequests34#定义请求的url接口(需要请求的接口),假设接口为http://httpbin。org/post5url="http://httpbin.org/post"67#定义请求头信息(字典类型)8headers={9"Accept":"*/*",10"Accept-Encoding":"gzip",11"User-Agent":"",12#定义请求数据格式,json13"Content-Type":"application/json",14}1516#定义请求参数信息(字典类型)17params={'name':u'Python集中营','type':'python'}1819#使用POST方式发起请求(添加头信息,添加参数信息)20#这里设置数据参数data=params21response=requests.post(url=url,headers=headers,data=params)2223#打印响应状态,200表示成功24print"Responsestatus",response.status_code25#打印响应信息26print"Responseinformation:",response.content4,POST方法:提交文件数据1#文件参数(字典类型)2files={3'file':(4#文件名5'python.png',6#文件路径,打开文件7open('C:/python.png','rb'),8#文件类型,图片9'image/png'),10}1112#使用POST方式发起请求(addheaderinformation,addparametersInformation)13#设置数据参数metersheredata=params(definedparameters)14#设置文件参数files=files(definedfiles)15response=requests.post(url=url,headers=headers,data=params,files=files)16#printresponsestatus,200表示成功17print"responsestatus",response.status_code18#printresponseinformation19print"responseinformation:",response.content更多精彩进入微信公众号【Python集中营】,重点在python技术栈,数据获取,通信社区,干货分享,期待你的加入~
