《数据采集与预处理》课件3:requests库_第1页
《数据采集与预处理》课件3:requests库_第2页
《数据采集与预处理》课件3:requests库_第3页
《数据采集与预处理》课件3:requests库_第4页
《数据采集与预处理》课件3:requests库_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

数据采集与预处理01-9月-25网络爬虫的作用及流程:通用网络爬虫体系结构http基本原理http的请求和响应方式复习1response对象(响应)静态网页数据采集--Requests库Requests库及常用方法(请求)2

通用代码框架31、Requests库简介Requests库是使用Python语言编写,基于Urllib开发,采用Apache2Licensed开源协议的HTTP库,可以帮助我们发送请求,获取请求响应的数据,如指定网页的HTML内容。Requests库支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的URL和POST数据自动编码等功能。它比urllib更加方便,可以帮助我们节约大量的开发工作量,是初学者的最佳选择。Requests库安装及常用方法2、Requests库安装为了减少安装过程中出现的问题,建议将pip强制升级为最新版本。由于缺省情况下python以及相关包从国外网站/simple下载,速度较慢,容易出现超时等问题,建议使用国内镜像如清华镜像进行升级安装。python第三方库的安装都建议使用-i参数切换为国内镜像地址。pip升级的完整命令如下所示。windows下requests库安装方法为,在命令行下输入如下命令pipinstallrequests-i/simple安装过程中,容易出现错误“pip不是内部或外部命令,也不是可运行的程序或批处理文件”。问题原因也是安装python过程中,没有选择“AddPython3.XtoPATH”选项。可手工添加至环境变量。Requests库安装及常用方法#切换镜像需要使用-i参数,/simple为清华镜像地址python-mpipinstall-U--force-reinstallpip-i/simple2、Requests库安装Requests库的安装小测试Requests库安装及常用方法3、Requests常见方法开发过程中有可能使用到的Http请求有Post、Delete、Put、Get,分别对应增删改查四种方式。一般来说Post和Get请求使用频率较高。Requests库针对各种请求方式都进行良好的封装。使用Requests发送请求前,必须使用importrequests导包。Requests库的主要请求方法如下表所示。Requests库安装及常用方法Requests库安装及常用方法request.request(method,url,**kwargs):

1、method:请求方式,对于get/post/put等7种2、url:获取页面的url链接3、**kwargs:控制访问的参数,共13个(小组课后作业)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)3、Requests常见方法

Requests库安装及常用方法既然Requests库有这么多的请求方式,我们该如何选择?难道可以任意使用?结合浏览器的开发者工具,可以很好的确定请求方式。举例说明,如在百度中输入“python”,在点击“百度一下”按钮前,F12打开浏览器(推荐使用Chrome浏览器)的开发者工具。切换到“Network”选项卡,点击“百度一下”按钮,会发现“Network”选项卡下拦截到很多请求,可根据类型进行过滤,也可逐一进行查找。对于爬虫来说一般选择XHR(ajax请求)或Doc(HTML),我们选择XHR过滤后请求后如图所示。答案是否定的。到底应该使用哪种请求方式。由目标网站的开发者决定,我们只能被动适应。从爬虫编写的角度来说,get请求占大多数,post请求只有特殊情况下使用,如模拟登录。Requests库安装及常用方法鼠标点击请求,根据查找关键字“python”或返回的内容确定真正的请求,如图所示。Headers中的RequestMethod为请求方式。Preview可以预览返回的数据。3、Requests常见方法4、

Requests库的Get方法Requests库安装及常用方法4、

Requests库的Get方法requests.get(url,params=None,

**kwargs)∙

url:

拟获取页面的url链接∙

params:

url中的额外参数,字典或字节流格式,可选∙**kwargs:

12个控制访问的参数Requests库安装及常用方法4、

Requests库的Get方法案例一:获取西安电子科技大学出版社的首页Html内容。url:Requests库安装及常用方法4、

Requests库的Get方法案例一:获取西安电子科技大学出版社的首页Html内容。url:Requests库安装及常用方法Requests库安装及常用方法选择西电首页“教材”分类中的计算机后,会发现url地址跳转到http://www.xduph.com/Pages/booklist.aspx?classid=1.1.2.。其中问号?代表后续内容为参数传递,参数传递遵循?key=value&key1=value的格式,如?classid=1.1.2。这种方式是Http协议中Get请求的基本参数传递方式,requests库的参数传递也使用这种方式。如获取教材中的计算机类图书的html,可将代码进行如下修改。4、

Requests库的Get方法5、

Requests库的Post方法Requests库安装及常用方法requests.post(url,data=None,**kwargs)

url:获取页面的url链接data:字典、字节序列或文件对象,作为Requests的内容**kwargs:12个控制访问的参数2Requests库及常用方法(请求)静态网页数据采集--Requests库response对象(响应)1

通用代码框架3response对象由服务端返回给客户端,可分为三部分:响应状态码(ResponseStatusCode)响应头(ResponseHeaders)响应体(ResponseBody)response对象响应1响应状态码2响应头3空行4响应体发送请求后,requests可获得响应response对象的信息:状态码、响应头、Cookies、Content等,具体的响应信息如下:r.text:获取响应的文本内容;r.status_code:获取响应的状态码;r.headers:获取指响应头信息;r.cookies:获取Cookies信息;r.url:获取请求的URL;r.history:获取请求的历史信息;r.request:获取请求的方式;response对象响应response对象Response对象属性response对象案例二:查看百度爬取对象的相关信息response对象案例二:查看百度爬取对象的相关信息response对象r.encoding:如果header中不存在charset,则认为编码为ISO‐8859‐1r.text根据r.encoding显示网页内容r.apparent_encoding:根据网页内容分析出的编码方式可以看作是r.encoding的备选理解response的编码3Requests库及常用方法(请求)静态网页数据采集--Requests库通用代码框架1response对象(响应)2通用代码框架理解Requests库的异常通用代码框架理解Response的异常通用代码框架任务1手机号码查询【任务描述】练习使用通用爬虫框架获取静态网页的文本内容。使用Requests库,获取/手机归属地查询结果,并打印输出页面的HTML文本内容。【分析】

目标页面如下图所示。输入合法数据,观察页面请求的规律。输入任意合法手机号后点击查询,页面跳转,发现浏览器地址栏发生变化。观察得知,:8080/search.asp?mobileaction=mobile中mobile查询参数后为查询的手机号码,是典型的Get请求。任务2QQ表情包下载【任务描述】使用Requests库下载/zjbq/网站中任意表情包图片。【分析】目标页面如下图所示下载图片首先需要确定图片的url地址,需要结合浏览器的开发者工具进行分析。F12打开浏览器的开发者工具,点击元素选取器

,移动鼠标到网页图片,观察页面结构。页面中的表情包图片是通过img标签控制显示,sr

温馨提示

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

评论

0/150

提交评论