爬虫库分享(一):requests常见用法总结
一.前言
requests
是Python中一个用来发出HTTP
请求的库,它将复杂的网络请求封装为一个简单的API以供用户调用,对于一般比较简单的爬虫程序而言,requests
库足矣,今天博主分享一下requests
库的常见用法,本文主要针对有志爬虫的新人。
二.常见用法
2.1 安装与引用
当然,在使用前需要在Python环境中安装requests库:
pip install requests
安装完成后便可以通过import
命令即可引用该库:
import requests
2.2 GET请求
HTTP
最常见的请求包括GET
和POST
,这里先介绍前者。GET
请求用来向服务器请求资源。通过GET
请求,我们发送自定义HTTP请求头给服务器,浏览器在发送GET
请求时的HTTP请求头一般包括Accept、Accept-Encoding、UserAgent等。
requests
库发送GET
请求,只需要调用如下的API:
requests.get(url, params, headers, proxies, timeout, verify)
# 参数说明
"""
url: 请求的URL
params: 字典\元组\列表,查询字符串参数,通过其可以向URL对应的参数传值,从而能够将数据传送给服务器,一般是URL?后面的内容
headers: 请求头,字典类型 (python程序伪装成浏览器发送请求的关键)
proxies: 字典,设置代理IP
timeout: 数字,超时时间,单位为秒
verify: 布尔值True或者False,指示是否验证服务器的TSL证书,默认为True (爬虫程序有时候需要将其关闭,否则验证失败,爬虫终止)
"""
2.2.1 Response对象
requests.get()
函数将会返回服务器的响应——requests.Response
对象,该对象包含了请求的结果,其常用属性/方法概括如下表:
属性 | 说明 |
---|---|
url
|
响应的URL |
text
|
响应的内容 (unicode码) |
json()
|
如果响应的结果是一个json对象,可以调用该方法,否则会报错 |
content
|
返回响应的内容(字节的形式) |
status_code
|
响应代码,其中200表示响应成功,404表示Not Found等等 |
2.2.2 GET请求示例
下面就以博主发的一篇文章使用NNI,从此告别手动调参作为例子,其对应的URL为:
https://blog.csdn.net/qq_42103091/article/details/123287865?spm=1001.2014.3001.5502
我们可以调用requests.get()
方法来模拟浏览器请求该文章:
import requestsheaders = {"user-agent": "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36"}
params = {"spm":"1001.2014.3001.5502"}
url = "https://blog.csdn.net/qq_42103091/article/details/123287865"response = requests.get(url=url, params=params, headers=headers)
# 响应的URL
print(response.url)
# https://blog.csdn.net/qq_42103091/article/details/123287865?spm=1001.2014.3001.5502
# 状态码
print(response.status_code)
# 200
可以看到上述示例的请求URL中问号后面的字段便是作为查询字符串参数的值而传入get()
函数的。
2.3 POST请求
倘若需要向服务器上传数据,一般采用POST
请求。常见的应用场景为提交HTML表单。发送给服务器的数据包含在POST
请求的消息体 (request body)中,POST
请求中的Content-Type
用来指示请求正文的数据类型,而Content-Length
则指示了请求中的数据长度。
requests
库发送POST
请求,只需要调用如下的API:
requests.post(url, data, json, headers, proxies, timeout, vertify)
# 参数说明
"""
url: 请求的URL
data: 发送给指定URL的字典、元组列表、字节或文件对象
json: 发送给指定URL的JSON对象
headers、proxies、timeout、vertify: 与get()方法同
"""
注:post
方法在调用后也会返回一个requests.Response
对象。
2.3.1 POST请求示例
为避免涉及具体网站,本次实践采用了某网站提供的验证POST
请求网址:https://httpbin.org/forms/post,其界面表单截图为:
填入数据后,点击提交按钮可以看到提交的请求,其界面截图如下:
基于此,我们可以利用requests.post()
方法来完成该操作:
import requests
import jsonurl = "https://httpbin.org/post"data = {"comments": "加辣", "custemail": "119@163.com", "custname": "2333", "custtel": "119", "delivery": "17:30", "size": "large", "topping": "onion"
}response = requests.post(url=url, data=data)
print(response.status_code)
# 200
with open("temp.json", "w", encoding="utf-8") as fp:json.dump(response.json(), fp, ensure_ascii=False)
上述代码实现了表单的提交,并将响应的JSON
对象保存到了本地。返回200说明提交表单成功,下面是其对应返回的json数据截图:
实际运营的网站大多数都比这要复杂,此时就要具体问题具体分析了。
四.结语
在完成本文的过程中,参考了很多非常好资源:
- HTTP GET Request Method
- How do I send an HTTP POST request?
以上便是本文的全部内容,要是觉得不错的话,可以点个赞或关注一下博主,你们的支持是博主进步的不竭动力,当然要是有问题的话也敬请批评指正!!!
爬虫库分享(一):requests常见用法总结相关推荐
- python requests常见用法总结
一.前言 requests是Python中一个用来发出HTTP请求的库,它将复杂的网络请求封装为一个简单的API以供用户调用,对于一般比较简单的爬虫程序而言,requests库足矣,今天博主分享一下r ...
- 爬虫必备,案例对比 Requests、Selenium、Scrapy 爬虫库!
经常有读者会爬虫学哪个库?其实常用的 Python 爬虫库无非是requests,selenium和scrapy,且每个库都有他们的特点,对于我来说没有最推荐的库只有最合适库,本文就将基于一个简单的爬 ...
- 知己知彼,案例对比 Requests、Selenium、Scrapy 爬虫库!
大家好,我是早起. 经常有读者会爬虫学哪个库?其实常用的 Python 爬虫库无非是requests,selenium和scrapy,其实每个库都有他们的特点,对于我来说没有最推荐的库只有最合适库,本 ...
- python爬虫库的常见用法_$python爬虫系列(2)—— requests和BeautifulSoup库的基本用法...
本文主要介绍python爬虫的两大利器:requests和BeautifulSoup库的基本用法. 1. 安装requests和BeautifulSoup库 可以通过3种方式安装: easy_inst ...
- python中requests的常用方法_Python爬虫简介(2)——请求库的常用方法及使用,python,入门,二,requests,常见,和,库中,文官,网...
前言 学习使我快乐,游戏使我伤心.今天rushB,又是白给的一天. HXDM,让我们一起学习requests库的方法和使用,沉浸在代码的世界里.呜呜呜~~ 一.requests库介绍 首先列出requ ...
- 手机版python3.6.6的requests库下载_Python爬虫之Python3.6 Requests库的基本使用方法
Python爬虫之Python3.6 Requests库的基本使用方法 未分类 在使用Python过程中,使用http处理各种请求是我们绕不过去的,在Python中开发爬虫用来抓取各种网络上的资源,就 ...
- Python 爬虫---(5)Requests库的使用
什么是Requests Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库 如果你看过上篇文章关于urllib库的使用,你会发现, ...
- Python爬虫十六式 - 第三式:Requests的用法
Requests: 让 HTTP 服务人类 学习一时爽,一直学习一直爽 Hello,大家好,我是Connor,一个从无到有的技术小白.今天我们继续来说我们的 Python 爬虫,上一次我们说到了 ...
- Python爬虫1.4 — requests高级用法教程
Python爬虫1.4 - requests高级用法教程 综述 设置请求头(headers) 设置代理服务器IP(proxy) Cookies(Session) requests.Session() ...
最新文章
- 自动化运维平台OMserver部署过程中解决的问题1
- 使用tensorflow书写逻辑回归
- 【转】android之在activity中控制另一个activity的UI更新_如何在activity之间传递handler...
- mysql添加表字段_mysql命令添加表字段
- (kruskal算法复习+模板)Eddy's picture
- Go embed 简明教程
- 数据结构之二叉排序树
- js实现轮播图常规类(原生JS,没有任何框架)
- Java中常见的异常举例
- 为什么我严重不建议去培训机构参加SAP培训?
- 如何查出一个表中重复的名字
- Android布局深究(五)——GridLayout(网格布局)
- SUSE11挂载目录seems to be mounted read-only错误 2022_11_08
- ID Ransomware帮你识别到底中了什么勒索软件
- Windows10使用浏览器崩溃复现及分析
- Git 初學筆記 - 指令操作教學
- MTBF平均故障间隔时间
- 1 1 2 3 5 8 13 21 代码实现 java(斐波那契数列)
- HTML5 单页应用/框架 - View.js介绍
- 影子系统toolwiz time freeze