Python-Requests库入门1

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

嵩天 Website is the API…网络爬虫与信息提取掌握定向网络数据爬取和网页解析的基本能力O4X-Tian平台: “以管理员身份运行”cmd,执行pip install requests方法说明requests.request()构造一个请求,支撑以下各方法的基础方法requests.get()获取HTML网页的主要方法,对应于HTTP的GETrequests.head()获取HTML网页头信息的方法,对应于HTTP的HEADrequests.post()向HTML网页提交POST请求的方法,对应于HTTP的POSTrequests.put()向HTML网页提交PUT请求的方法,对应于HTTP的PUTrequests.patch()向HTML网页提交局部修改请求,对应于HTTP的PATCHrequests.delete()向HTML页面提交删除请求,对应于HTTP的DELETErequests.get()r = requests.get(url)Request构造一个向服务器请求资源的Request对象Response返回一个包含服务器资源的Response对象requests.get(url,params=None, **kwargs)∙ url: 拟获取页面的url链接∙ params: url中的额外参数,字典或字节流格式,可选∙**kwargs: 12个控制访问的参数requests.get(url,params=None, **kwargs)r = requests.get(url)RequestResponseRequests2Response对象包含爬虫返回的内容ResponseResponse对象包含服务器返回的所有信息,也包含请求的Request信息Response(1)属性说明r.status_codeHTTP请求的返回状态,200表示连接成功,404表示失败r.textHTTP响应内容的字符串形式,即,url对应的页面内容r.encoding从HTTP header中猜测的响应内容编码方式r.apparent_encoding从内容中分析出的响应内容编码方式(备选编码方式)r.contentHTTP响应内容的二进制形式Responser.status_code404或其他200r.textr.encodingr.apparent_encodingr.content某些原因出错将产生异常Responser.encoding从HTTP header中猜测的响应内容编码方式r.apparent_encoding从内容中分析出的响应内容编码方式(备选编码方式)r.encoding:如果header中不存在charset,则认为编码为ISO‐8859‐1r.text根据r.encoding显示网页内容r.apparent_encoding:根据网页内容分析出的编码方式可以看作是r.encoding的备选r = requests.get(url)r = requests.get(url)ExceptionRequests网络连接有风险,异常处理很重要Requests异常说明requests.ConnectionError网络连接错误异常,如DNS查询失败、拒绝连接等requests.HTTPErrorHTTP错误异常requests.URLRequiredURL缺失异常requests.TooManyRedirects超过最大重定向次数,产生重定向异常requests.ConnectTimeout连接远程服务器超时异常requests.Timeout请求URL超时,产生超时异常Responser.raise_for_status()如果不是200,产生异常requests.HTTPErrorr.raise_for_status()在方法内部判断r.status_code是否等于200,不需要增加额外的if语句,该语句便于利用try‐except进行异常处理r = requests.get(url)方法说明requests.request()构造一个请求,支撑以下各方法的基础方法requests.get()获取HTML网页的主要方法,对应于HTTP的GETrequests.head()获取HTML网页头信息的方法,对应于HTTP的HEADrequests.post()向HTML网页提交POST请求的方法,对应于HTTP的POSTrequests.put()向HTML网页提交PUT请求的方法,对应于HTTP的PUTrequests.patch()向HTML网页提交局部修改请求,对应于HTTP的PATCHrequests.delete()向HTML页面提交删除请求,对应于HTTP的DELETEHTTPHTTP,Hypertext Transfer Protocol,超文本传输协议HTTP是一个基于“请求与响应”模式的、无状态的应用层协议HTTP协议采用URL作为定位网络资源的标识,URL格式如下:[:port][path]host: 合法的Internet主机域名或IP地址port: 端口号,缺省端口为80path: 请求资源的路径HTTPHTTP,Hypertext Transfer Protocol,超文本传输协议HTTP URL实例: URL的理解:URL是通过HTTP协议存取资源的Internet路径,一个URL对应一个数据资源HTTP方法说明GET请求获取URL位置的资源HEAD请求获取URL位置资源的响应消息报告,即获得该资源的头部信息POST请求向URL位置的资源后附加新的数据PUT请求向URL位置存储一个资源,覆盖原URL位置的资源PATCH请求局部更新URL位置的资源,即改变该处资源的部分内容DELETE请求删除URL位置存储的资源HTTPGET HEADPUT POST PATCH DELETEURL通过URL和命令管理资源,操作独立无状态,网络通道及服务器成为了黑盒子PATCHPUT假设URL位置有一组数据UserInfo,包括UserID、UserName等20个字段需求:用户修改了UserName,其他不变•采用PATCH,仅向URL提交UserName的局部更新请求•采用PUT,必须将所有20个字段一并提交到URL,未提交字段被删除PATCH的最主要好处:节省网络带宽HTTPRequestsHTTP协议方法Requests库方法功能一致性GETrequests.get()一致HEADrequests.head()一致POSTrequests.post()一致PUTrequests.put()一致PATCHrequests.patch()一致DELETErequests.delete()一致Requestshead() r=requests.head(') r.headers{'Content‐Length': '238', 'Access‐Control‐Allow‐Origin': '*', 'Access‐Control‐Allow‐Credentials': 'true', 'Content‐Type': 'application/json', 'Server': 'nginx', 'Connection': 'keep‐alive', 'Date': 'Sat, 18 Feb 2017 12:07:44 GMT'} r.text''Requestspost() payload={'key1': 'value1','key2':'value2'} r=requests.post('= payload) print(r.text){  ...form: {key2: value2,key1: value1},}向URL POST一个字典自动编码为form(表单)Requestspost() r=requests.post('= 'ABC') print(r.text){  ...data: ABCform: {},}向URL POST一个字符串自动编码为dataRequestsput() payload={'key1': 'value1','key2':'value2'} r=requests.put('= payload) print(r.text){  ...form: {key2: value2,key1: value1},}方法说明requests.request()构造一个请求,支撑以下各方法的基础方法requests.get()获取HTML网页的主要方法,对应于HTTP的GETrequests.head()获取HTML网页头信息的方法,对应于HTTP的HEADrequests.post()向HTML网页提交POST请求的方法,对应于HTTP的POSTrequests.put()向HTML网页提交PUT请求的方法,对应于HTTP的PUTrequests.patch()向HTML网页提交局部修改请求,对应于HTTP的PATCHrequests.delete()向HTML页面提交删除请求,对应于HTTP的DELETErequests.request(method,url,**kwargs)∙method : 请求方式,对应get/put/post等7种∙ url: 拟获取页面的url链接∙**kwargs: 控制访问的参数,共13个requests.request(method,url,**kwargs)∙method : 请求方式r = requests.request('GET',url,**kwargs)r = requests.request('HEAD',url,**kwargs)r = requests.request('POST',url,**kwargs)r = requests.request('PUT',url,**kwargs)r = requests.request('PATCH',url,**kwargs)r = requests.request('delete',url,**kwargs)r = requests.request('OPTIONS',url,**kwargs)requests.request(method,url,**kwargs)∙**kwargs: 控制访问的参数,均为可选项params: 字典或字节序列,作为参数增加到url中 kv={'key1':'value1','key2':'value2'} r=requests.request('GET','=kv) print(r.url)=value1&key2=value2requests.request(method,url,**kwargs)∙**kwargs: 控制访问的参数,均为可选项params: 字典或字节序列,作为参数增加到url中data    : 字典、字节序列或文件对象,作为Request的内容 kv={'key1':'value1','key2':'value2'} r=requests.request('POST','http:

1 / 59
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功