ws01requests库入门_第1页
ws01requests库入门_第2页
ws01requests库入门_第3页
ws01requests库入门_第4页
ws01requests库入门_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、WS01嵩天The Website is the API Requests自动爬取HTML页面自动网络请求提交掌握定向网络数据爬取和网页网络爬虫与的基本能力提取O4X -TianWin平台:“以管理员运行”cmd,执行pipinstallrequests说明requests.request()构造一个请求,支撑以下各的基础requests.get()获取HTML网页的主要,对应于HTTP的GETrequests.head()获取HTML网页头的,对应于HTTP的HEADrequests.post()向HTML网页提交POST请求的,对应于HTTP的POSTrequests.put()向HTML

2、网页提交PUT请求的,对应于HTTP的PUTrequests.patch()向HTML网页提交局部修改请求,对应于HTTP的PATCHrequests.delete()向HTML页面提交删除请求,对应于HTTP的DELETErequests.get()r=requests.get(url)构造一个向服务器请求资源的Request对象返回一个包含服务器资源的Response对象ResponseRequestrequests.get(url,params=None,*kwargs): 拟获取页面的url链接: url中的额外参数,字典或字节流格式,可选urlparams*kwargs: 12个的参

3、数requests.get(url,params=None,*kwargs)Requests2r=requests.get(url)ResponseRequestResponse对象包含爬虫返回的内容ResponseResponse对象包含服务器返回的所有,也包含请求的RequestResponse(1)属性说明r.status_codeHTTP请求的返回状态,200表示连接,404表示失败r.textHTTP响应内容的字符串形式,即,url对应的页面内容r.encoding从HTTP header中猜测的响应内容编码方式r.apparent_encoding从内容中分析出的响应内容编码方式(

4、备选编码方式)r.contentHTTP响应内容的二进制形式Responser.status_code404或其他200r.textr.encoding某些出错r.apparent_encodingr.content将产生异常Responser.encoding:如果header中不charset,则认为编码为ISO88591r.text根据r.encoding显示网页内容r.apparent_encoding:根据网页内容分析出的编码方式可以看作是r.encoding的备选r.encoding从HTTP header中猜测的响应内容编码方式r.apparent_encoding从内容中分析出

5、的响应内容编码方式(备选编码方式)r=requests.get(url)Requestsr=requests.get(url)Exception网络连接有风险,异常处理很重要Requests异常说明requests.ConnectionError网络连接错误异常,如DNS失败、拒绝连接等requests.HTTPErrorHTTP错误异常requests.URLRequiredURL缺失异常requests.TooManyRedirects超过最大重定向次数,产生重定向异常requests.ConnectTimeout连接服务器超时异常requests.Timeout请求URL超时,产生超时异

6、常Responser=requests.get(url)r.raise_for_status()在内部r.status_code是否等于200,不需要增加额外的if语句,该语句便于利用tryexcept进行异常处理r.raise_for_status()如果不是200,产生异常 requests.HTTPError说明requests.request()构造一个请求,支撑以下各的基础requests.get()获取HTML网页的主要,对应于HTTP的GETrequests.head()获取HTML网页头的,对应于HTTP的HEADrequests.post()向HTML网页提交POST请求的,

7、对应于HTTP的POSTrequests.put()向HTML网页提交PUT请求的,对应于HTTP的PUTrequests.patch()向HTML网页提交局部修改请求,对应于HTTP的PATCHrequests.delete()向HTML页面提交删除请求,对应于HTTP的DELETEHTTPHTTP,Hypertext Transfer Protocol,超文本传输协议HTTP是一个基于“请求与响应”模式的、无状态的应用层协议HTTP协议采用URL作为定位网络资源的标识,URL格式如下::portpathhost: 合法的Internet主机域名或IP地址port: 端,缺省端口为80pat

8、h: 请求资源的路径HTTPHTTP,HypertextProtocol,超文本传输协议TransferHTTP URL实例:HTTP URL的理解:URL是通过HTTP协议存取资源的Internet路径,一个URL对应一个数据资源HTTP说明GET请求获取URL位置的资源HEAD请求获取URL位置资源的响应消息报告,即获得该资源的头部POST请求向URL位置的资源后附加新的数据PUT请求向URL位置一个资源,覆盖原URL位置的资源PATCH请求局部更新URL位置的资源,即改变该处资源的部分内容DELETE请求删除URL位置的资源HTTPGETHEADURLPUTPOSTPATCHDELETE

9、通过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()一致P

10、ATCHrequests.patch()一致DELETErequests.delete()一致Requestshead() r = requests.head() r.headersContentLength: 238, AccessControlAllowOrigin: *, Access ControlAllowCredentials: true, ContentType: application/json, Server: nginx, Connection: keepalive, Date: Sat, 18 Feb 2017 12:07:44 GMT r.text Requestspo

11、st() payload = key1: value1, key2: value2 r = requests.post(, data = payload) print(r.text) .form: 向URL POST一个字典key2: value2,自动编码为form(表单) key1: value1,Requestspost() r = requests.post(, data = ABC) print(r.text) .data: ABC向URL POST一个字符串form: ,自动编码为dataRequestsput() payload = key1: value1, key2: val

12、ue2 r = requests.put(, data = 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()向HT

13、ML网页提交局部修改请求,对应于HTTP的PATCHrequests.delete()向HTML页面提交删除请求,对应于HTTP的DELETErequests.request(method,url,*kwargs): 请求方式,对应get/put/post等7种: 拟获取页面的url链接methodurl的参数,共13个*kwargs:requests.request(method,url,*kwargs): 请求方式requests.request(GET, url, *kwargs) requests.request(HEAD, url, *kwargs) requests.request

14、(POST, url, *kwargs) requests.request(PUT, url, *kwargs) requests.request(PATCH, url, *kwargs) requests.request(delete, url, *kwargs)requests.request(OPTIONS, url, *kwargs)methodr r r r r rr=requests.request(method,url,*kwargs)的参数,均为可选项*kwargs:params : 字典或字节序列,作为参数增加到url中kv = key1: value1, key2: val

15、ue2r = requests.request(GET, print(r.url), params=kv)requests.request(method,url,*kwargs)的参数,均为可选项: 字典或字节序列,作为参数增加到url中: 字典、字节序列或文件对象,作为Request的内容*kwargs:params data kv = key1: value1, key2: value2 r = requests.request(POST, , data=kv) body = 主体内容 r = requests.request(POST, , data=body)requests.requ

16、est(method,url,*kwargs)的参数,均为可选项: 字典或字节序列,作为参数增加到url中: 字典、字节序列或文件对象,作为Request的内容: JSON格式的数据,作为Request的内容*kwargs:paramsdata json kv = key1: value1 r = requests.request(POST, , json=kv)requests.request(method,url,*kwargs)的参数,均为可选项: 字典或字节序列,作为参数增加到url中: 字典、字节序列或文件对象,作为Request的内容: JSON格式的数据,作为Request的内容

17、: 字典,HTTP定制头*kwargs:params data jsonheaders hd = useragent: Chrome/10 r = requests.request(POST, , headers=hd)requests.request(method,url,*kwargs)的参数,均为可选项: 字典或字节序列,作为参数增加到url中: 字典、字节序列或文件对象,作为Request的内容: JSON格式的数据,作为Request的内容: 字典,HTTP定制头: 字典或CookieJar,Request中的cookie: 元组,支持HTTP认证功能*kwargs:params d

18、ata json headers cookiesauthrequests.request(method,url,*kwargs)的参数(续): 字典类型,传输文件*kwargs:files fs = file: open(data.xls, rb) r = requests.request(POST, , files=fs)requests.request(method,url,*kwargs)的参数(续): 字典类型,传输文件*kwargs:filestimeout : 设定超时时间,秒为 r = requests.request(GET, , timeout=10)requests.req

19、uest(method,url,*kwargs)的参数(续): 字典类型,传输文件: 设定超时时间,秒为*kwargs:filestimeout proxies: 字典类型,设定服务器,可以增加登录认证 pxs = http: https: r = requests.request(GET, , proxies=pxs)requests.request(method,url,*kwargs)的参数(续): 字典类型,传输文件: 设定超时时间,秒为*kwargs:filestimeout proxies: 字典类型,设定服务器,可以增加登录认证allow_redirects : True/Fal

20、se,默认为True,重定向开关: True/False,默认为True,获取内容立即开关streamverify cert: True/False,默认为True,认证SSL开关: 本地SSL路径requests.request(method,url,*kwargs)的参数,均为可选项*kwargs:params data json headers cookies authfilestimeoutproxies allow_redirects streamverifycertrequests.get(url,params=None,*kwargs): 拟获取页面的url链接: url中的额外参数,字典或字节流格式,可选urlparams

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论