热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python之requests库学习

之前一直想写个爬虫,但都只是零零散散的学也没有做个笔记啥的,导致现在一些知识点都差不多忘光了…(前车之鉴啊学东西一定要写点笔记啊ÿ

之前一直想写个爬虫,但都只是零零散散的学也没有做个笔记啥的,导致现在一些知识点都差不多忘光了…(前车之鉴啊学东西一定要写点笔记啊,不然时间一久就又得从头开始学了)

所以现在通过写博客记录学习的过程。

前期准备:
安装好 requests库
pip install requests

参考request用户手册
requests库 用法:

函数用法
requests.get(url,params=)get请求,提交的参数在url中,返回页面内容

Response响应中的属性和方法
常用属性:

status_code: 数据类型:int
作用:返回HTTP响应的状态码:200、404、500、等
reason: 数据类型:str
作用:返回HTTP响应的描述:OK、Not Found、等
headers: 数据类型:字典
作用:返回HTTP响应头
url: 数据类型:str
作用:请求的真实地址
history: 数据类型:列表(数组)
作用:访问历史记录(重定向记录)
encoding: 数据类型:str
作用:HTTP响应头中的编码字段,response.text
取反回值时,就是根据这个字段进行解码的,如果没有,则按:"ISO-8859-1"解码
COOKIEs: 数据类型:RequestsCOOKIEJar
作用:获取COOKIE
elapsed:类型:datetime.timedelta
作用:发送请求到接收到响应所花费的时长
request: 类型:requests.models.PreparedRequest
作用:对应的请求对象
raw:作用:原始响应体,也就是 urllib 的 HTTPResponse 对象,使用 response.raw.read() 读取
加粗样式
常用方法
@property类型方法:
ok(self):状态码是否小于400,返回值为True或False
apparent_encoding(self):根据返回内容, 解析出来的字符编码
content(self):原始响应体
text(self):经过编码后的文本内容

普通方法:

**json(self, kwargs):转换成json格式的数据
iter_content(self, chunk_size=1, decode_unicode=False):按字节分块的迭代器
iter_lines(self,chunk_size=ITER_CHUNK_SIZE,decode_unicode=None,delimiter=None):按行分块的迭代器
raise_for_status(self):抛出状态异常错误
close(self):关闭连接


import requests#requests库函数测试url='http://httpbin.org/get'
url1='http://github.com'
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"}
payload={'key1':'value'}
#测试get请求
response=requests.get(url1,headers=headers,params=payload,timeout=10)
print('返回状态码:',response.status_code)
print('根据HTTP头部推测编码:',response.encoding)
print('根据页面内容判断编码:',response.apparent_encoding)
print('以二进制形式返回页面内容:',response.content)
print('JSON形式返回内容:',response.json)
print('返回COOKIE:',response.COOKIEs)
print('发送请求到响应到达所经过的时间:',response.elapsed)
print('响应头:',response.headers)
print('返回包含请求(URL)历史的响应对象列表:(追踪重定向。)',response.history)
print('原始响应头:',response.raw)
print('返回与状态码相对应的文本:',response.reason)
print('请求对象:',response.request)
print('请求的真实url:',response.url)
print('编码后返回的页面内容',response.text)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


函数用法
requests.post(url,data=)post请求,提交的参数在url中,返回页面内容

url='http://httpbin.org/post'
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"}
payload={'key':'balue'}
#payload=(('key1', 'value1'), ('key1', 'value2'))
response=requests.post(url,data=payload,headers=headers,timeout=10)
print('返回状态码:',response.status_code)
print('根据HTTP头部推测编码:',response.encoding)
print('根据页面内容判断编码:',response.apparent_encoding)
print('以二进制形式返回页面内容:',response.content)
print('JSON形式返回内容:',response.json)
print('返回COOKIE:',response.COOKIEs)
print('发送请求到响应到达所经过的时间:',response.elapsed)
print('响应头:',response.headers)
print('返回包含请求(URL)历史的响应对象列表:(追踪重定向。)',response.history)
print('原始响应头:',response.raw)
print('返回与状态码相对应的文本:',response.reason)
print('请求对象:',response.request)
print('请求的真实url:',response.url)
print('编码后返回的页面内容',response.text)

在这里插入图片描述

函数用法
requests.head(url,**kwargs)head请求,返回响应头

url='http://httpbin.org/head'
response=requests.head(url)
print(response.headers)

在这里插入图片描述

函数解释
requests.put(url,data=,**kwargs=)#向html网页提交put请求的方法
requests.patch(url,data,**kwargs=)#向html提交局部修改的请求
requests.delete(url,**kwargs=)#向html提交删除请求
requests.request(method,url,**kwargs)method: “GET”、”HEAD”、”POST”、”PUT”、”PATCH”; url: 请求的网址;**kwargs: 控制访问的参数

payload={"key1":"value1","key2":"value2"}
r1=requests.put("http://httpbin.org/put",data=payload)
files={'files':open('C:\\VSCode_work\\python_work\\CTF脚本\\test.txt','rb')}
r2 = requests.post('https://httpbin.org/post',files=files)print(r1.text)
print(r2.text)

在这里插入图片描述
在这里插入图片描述

r3=requests.request(method='POST',url="http://httpbin.org/post",data=payload)
print(r3.request)
print(r3.text)

在这里插入图片描述


推荐阅读
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • python中安装并使用redis相关的知识
    本文介绍了在python中安装并使用redis的相关知识,包括redis的数据缓存系统和支持的数据类型,以及在pycharm中安装redis模块和常用的字符串操作。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文介绍了如何通过conda安装Selenium的wheel文件,包括查看环境、卸载旧版本、下载新版本的wheel文件以及安装操作的步骤。同时提供了使用清华源的方法。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 本文讨论了将HashRouter改为Router后,页面全部变为空白页且没有报错的问题。作者提到了在实际部署中需要在服务端进行配置以避免刷新404的问题,并分享了route/index.js中hash模式的配置。文章还提到了在vueJs项目中遇到过类似的问题。 ... [详细]
author-avatar
G版车臣
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有