版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用requests库爬取网页Contents素养目标能够初步建立起大数据领域的知识体系,完成一些初级技术实践。技能目标可以使用requests库爬取网页。知识目标熟悉requests库的定义及包含的类。urllib库的局限性仅仅实现一个小功能就要用到很多代码。urllib库的函数使用方式并不简洁什么是requests库requests是Python的一个第三方HTTP库requests在urlli的基础上进行了高度的封装。让Python实现访问网页并获取源代码特点比Python自带的网络库urllib更加简单、方便和人性化。继承urllib的所有特性还支持其他特性使用cookie保持会话自动确定响应内容的编码什么是requests库requests是Python的一个第三方HTTP库requests在urllib的基础上进行了高度的封装。特点比Python自带的网络库urllib更加简单、方便和人性化。继承urllib的所有特性还支持其他特性Requests不是Python标准款,需要安装,可以在命令行中使用pip进行安装。安装命令如下:>>>pipinstallrequests什么是requests库表示请求对象,用于将一个请求发送到服务器。requests.Request表示响应对象,其中包含服务器对HTTP请求的响应。request.Response表示请求会话,提供Cookie持久性、连接池和配置。request.SessionRequest类的对象表示一个请求,生命周期只针对一个客户端请求。requests库中提供了如下常用的类:一旦请求发送完毕将释放掉该请求包含的内容什么是requests库表示请求对象,用于将一个请求发送到服务器。requests.Request表示响应对象,其中包含服务器对HTTP请求的响应。request.Response表示请求会话,提供Cookie持久性、连接池和配置。request.SessionSession类的对象可以横跨多个页面,当关闭这个客户端的浏览器时:requests库中提供了如下常用的类:在预先设置的会话周期内一般是20-30min会话所包含的内容会一直存在比如,用户登录某个网站时,可以在多个IE窗口发出多个请求。什么是requests库使用Requests库发送网络请求的第一步是导入Requests模块,命令如下:在浏览器里面可以直接通过输入网址访问的页面,就是使用了GET方式。使用GET方法获取网页源码语法结构为:Requests库请求方法>>>importrequestshtml=requests.get('网址')什么是requests库Requests库请求方法假如要获取百度首页源码,示例代码如下:>>>response=requests.get('/')使用的请求方法可以发现使用GET方法获取到百度官网,并把数据赋值给response对象。importurllib.requestimporturllib.parseurl='/s'word={"wd":"数据采集"}word=urllib.parse.urlencode(word)new_url=url+"?"+wordheaders={"User-Agent":"Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/535.1(KHTML,likeGecko)Chrome/14.0.835.163Safari/535.1"}request=urllib.request.Request(new_url,headers=headers)response=urllib.request.urlopen(request)html=response.read().decode('utf-8')print(html)requests库初体验urllib库发送get请求requests库初体验requests发送get请求#导入requests库importrequests#请求的URL路径和查询参数url="/s"param={"wd":"数据采集"}#请求报头headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/51.0.2704.103Safari/537.36"}#发送GET请求,返回一个响应对象response=requests.get(url,params=param,headers=headers)#查看响应的内容print(response.text)使用requests库减少了发送请求的代码量比较两段代码发现requests库初体验requests库从细节上的便捷之处无须再转换为URL路径编码格式,拼接完整的URL路径。1无须再频繁地为中文转换编码格式。2从发送请求的函数名称,可以很直观地判断发送到服务器的方式。3urlopen()函数方法返回的是一个文件对象,需要调用read()方法一次性读取;而get函数返回的是一个响应对象,可以访问该对象的text属性查看响应内容。4URL什么是requests库说明data这个字典的内容和项数需要根据实际情况修改,Key和Value在不同的网站是不一样的。data={'key1':'value1',
'key2':'value2'}html_formdata=requests.post('网址',data=data).content.decode()有些页面只能通过从另一个页面单击某个链接或者某个按钮以后跳过来,不能直接通过在浏览器输入网址访问。这种网页就是使用了POST方式。使用POST方法获取源码格式如下:什么是requests库html_json=requests.post('网址',json=data).content.decode()>>>response=requests.put('/',data={'key':'value'})>>>response=requests.delete('/')>>>response=requests.head('/')>>>response=requests.options('/')有些网址提交的内容需要是JSON格式的。Requests实现HTTP其他的基本请求方式也是比较简单的,比如实现PUT,DELETE,HEAD以及OPTIONS类型代码如下:requests可以自动将字典转换为JSON字符串,示例代码如下:发送请求函数功能说明requests.request()构造一个请求,支撑以下各方法的基础方法。requests.get()获取HTML网页的主要方法,对应于HTTP的GET请求方式。requests.head()获取HTML网页头信息的方法,对应于HTTP的HEAD请求方式。requests.post()向HTML网页提交POST请求的方法,对应于HTTP的POST请求方式。requests.put()向HTML网页提交PUT请求的方法,对应于HTTP的PUT请求方式。requests.patch()向HTML网页提交局部修改请求,对应于HTTP的PATCH请求方式。requests.delete()向HTML网页提交删除请求,对应于HTTP的DELETE请求方式。requests库中提供了很多发送HTTP请求的函数发送请求这些函数都会做两件事情该对象将被发送到某个服务器上请求或者查询一些资源。该对象包含了服务器返回的所有信息,也包括原来创建的Request对象。1构建一个Request类的对象2一旦得到服务器返回的响应,就会产生一个Response对象。返回响应Response类用于动态地响应客户端的请求,控制发送给用户的信息,并且将动态地生成响应,包括状态码、网页的内容等。属性说明status_codeHTTP请求的返回状态,200表示连接成功,404表示失败。textHTTP响应内容的字符串形式,即URL对应的页面内容。encoding从HTTP请求头中猜测的响应内容编码方式。apparent_encoding从内容中分析出的响应编码的方式(备选编码方式)。contentHTTP响应内容的二进制形式。返回响应Requests库可以找出它使用了什么编码,并且可以设置encoding属性进行改变。再次调用text属性获取返回的文本内容时,将会使用上述设置的新的编码方式。>>>response.encoding'utf-8'>>>response.encoding='ISO-8859-1'requests库有道翻译requests发送post请求importrequests#F12打开浏览器的开发者工具,观察网页变化查找URL和请求参数:url='/jsonapi_s?doctype=json&jsonversion=4'word=input("请输入你要翻译的文字:")form_data={'q':word,'le':'en'}headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/51.0.2704.103Safari/537.36"}res=requests.po
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 私人住宅租房合同范例
- 2024年高效复式真空滤油机项目可行性研究报告
- 增资扩股服务合同范例
- 陕西师范大学《成人护理学二》2023-2024学年第一学期期末试卷
- 2024年知识产权贯标认证服务合同
- 建房保修合同范例
- 与监理公司合同范例
- 2024年工艺花灯项目可行性研究报告
- 一年级数学(上)计算题专项练习汇编
- 三年级数学计算题专项练习及答案
- 考研快题系列一(城市滨水广场绿地设计)
- HTML5CSS3 教案及教学设计合并
- 青岛版六三二年级上册数学乘加乘减解决问题1课件
- 汽车机械基础课件第五单元机械传动任务二 链传动
- 电子课件机械基础(第六版)完全版
- 消防维保方案 (详细完整版)
- DB64∕T 001-2009 梯田建设技术规范
- DB62∕T 4128-2020 公路工程竣工文件材料立卷归档规程
- 中医妇科学.病案
- 杰普逊航图使用教程(专业应用)
- 湖南涉外经济学院论文答辩高校通用ppt模版
评论
0/150
提交评论