Python HTTP库 requests 的简单使用详情

目录
  • 1、简单使用
  • 2、构建请求查询参数
  • 3、构建请求头Headers
  • 4、构建POST请求数据
    • 4.1 表单数据
    • 4.2 json数据
  • 5、获取响应内容
  • 6、Cookies
  • 7、超时配置
  • 8、代理

requests库实现了HTTP协议中绝大部分功能,提供了Keep-Alive、连接池、Cookie持久化、HTTP(S)代理支持、连接超时等很多功能特性,最重要的是它同时支持Python2和ython3,而且能在PyPy下完美运行。

使用前需要使用pip install requests命令进行安装。

1、简单使用

res = requests.get("http://httpbin.org/get")
# 状态码
print(res.status_code)
# 响应头
print(res.headers["Content-Type"], res.headers["Server"])
# 响应内容
print(res.text)

执行结果如下:

200
application/json gunicorn/19.9.0
{
  "args": {},
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate",
    .......
  },
  "origin": "xxx.xxx.xx.xx", 
  "url": http://httpbin.org/get
}

另外,http请求还有很多类型,比如POST、PUT、DELETE、HEAD、OPTIONS。requests也都可以以简单的方式实现。

res = requests.post("http://httpbin.org/post")
res = requests.put("http://httpbin.org/put")
res = requests.delete("http://httpbin.org/delete")
res = requests.head("http://httpbin.org/get")
res = requests.options("http://httpbin.org/get")

由此看来,使用requests库确实简单方便。

2、构建请求查询参数

很多请求都需要在URL中传递参数,我们可以用字典来构建查询参数,使用params参数在URL中添加参数。

payload = {"wd": "test"}
res = requests.get("https://www.baidu.com/", params=payload)
print(res.url)

运行结果如下:

https://www.baidu.com/?wd=test

3、构建请求头Headers

requests可以在请求中很简单的指定请求头的Headers信息,直接传递一个字典给参数headers即可。

headers = {"user-agent": "Mozilla/5.0", "cookies": "xxx"}
res = requests.get("https://www.baidu.com/", headers=headers)

4、构建POST请求数据

requests可以非常方便的构建POST请求需要的数据。如果服务端接收的的数据是表单数据,可以使用参数data上送,如果接收的是json格式的数据,则可以使用json参数上送。

4.1 表单数据

import requests

data = {"key1": "value1", "key2": "value2"}
res = requests.post("http://httpbin.org/post", data=data)
print(res.text)

运行结果如下:

{
  "args": {},
  "data": "",
  "files": {},
  "form": {
    "key1": "value1",
    "key2": "value2"
  },
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate",
    "Content-Length": "23",
    "Content-Type": "application/x-www-form-urlencoded",
    "Host": "httpbin.org",
    "User-Agent": "python-requests/2.26.0",
    "X-Amzn-Trace-Id": "Root=1-614d7d91-559333ee19237f845026ef37"
  },
  "json": null,
  "origin": "xxx.xxx.xx.xx",
  "url": "http://httpbin.org/post"
}

4.2 json数据

import json
import requests

url = "http://httpbin.org/post"
data = {"key": "value"}
data = json.dumps(data)
res = requests.post(url, data=data)
print(res.text)

运行结果如下:

{
  "args": {},
  "data": "{\"key\": \"value\"}",
  "files": {},
  "form": {},
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate",
    "Content-Length": "16",
    "Host": "httpbin.org",
    "User-Agent": "python-requests/2.26.0",
    "X-Amzn-Trace-Id": "Root=1-614d7e91-065887f925dce94d6d03b2e4"
  },
  "json": {
    "key": "value"
  },
  "origin": "xxx.xxx.xx.xx",
  "url": "http://httpbin.org/post"
}

5、获取响应内容

使用requests请求处理响应体也非常方便灵活,可以使用的属性有contenttextjson()

content属性获取的是byte类型的数据。

import requests

res = requests.get("http://httpbin.org/get")
print(res.content)

text属性获取的是str类型的数据。

import requests

res = requests.get("http://httpbin.org/get")
print(res.text)

如果返回的内容是json格式的数据时,就可以使用json()方法返回一个经过json.loads()处理后的对象。

import requests

url = "http://httpbin.org/post"
res = requests.post(url)
print(res.json())

6、Cookies

如果响应中包含了cookie信息,我们可以使用cookies属性获取。

res = requests.get("http://httpbin.org/get")
print(res.cookies)

另外还可以使用cookies参数向服务端发送cookies信息。

url = "http://httpbin.org/cookies"
cookies = {"cookies": "xxxxx"}
r = requests.get(url, cookies=cookies)
print(r.text)

7、超时配置

可以利用timeout参数来配置最大请求时间。

requests.get("https://baidu.com", timeout=0.01)

8、代理

如果需要使用代理,我们可以通过proxies参数来配置。

import requests

proxies = {
  'http': 'http://175.7.199.202:3256',
  'https': 'http://175.7.199.59:3256',
}

requests.get('http://httpbin.org/get', proxies=proxies)

总结:

到此这篇关于Python HTTP库 requests 的简单使用详情的文章就介绍到这了,更多相关Python HTTP库 requests 的简单使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python爬虫入门教程--优雅的HTTP库requests(二)

    前言 urllib.urllib2.urllib3.httplib.httplib2 都是和 HTTP 相关的 Python 模块,看名字就觉得很反人类,更糟糕的是这些模块在 Python2 与 Python3 中有很大的差异,如果业务代码要同时兼容 2 和 3,写起来会让人崩溃. 好在,还有一个非常惊艳的 HTTP 库叫 requests,它是 GitHUb 关注数最多的 Python 项目之一,requests 的作者是 Kenneth Reitz 大神. requests 实现了 HTTP

  • Python开发的HTTP库requests详解

    Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,从而使得Pythoner进行网络请求时,变得美好了许多,使用Requests可以轻而易举的完成浏览器可有的任何操作. 1. GET请求 # 1.无参数实例 import requests ret = requests.get('https://github.com/timeline.json') print(ret.url) print(re

  • Python HTTP库 requests 的简单使用详情

    目录 1.简单使用 2.构建请求查询参数 3.构建请求头Headers 4.构建POST请求数据 4.1 表单数据 4.2 json数据 5.获取响应内容 6.Cookies 7.超时配置 8.代理 requests库实现了HTTP协议中绝大部分功能,提供了Keep-Alive.连接池.Cookie持久化.HTTP(S)代理支持.连接超时等很多功能特性,最重要的是它同时支持Python2和ython3,而且能在PyPy下完美运行. 使用前需要使用pip install requests命令进行安

  • python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例

    使用python爬虫库requests,urllib爬取今日头条街拍美图 代码均有注释 import re,json,requests,os from hashlib import md5 from urllib.parse import urlencode from requests.exceptions import RequestException from bs4 import BeautifulSoup from multiprocessing import Pool #请求索引页 d

  • 使用Python爬虫库requests发送表单数据和JSON数据

    导入Python爬虫库Requests import requests 一.发送表单数据 要发送表单数据,只需要将一个字典传递给参数data payload = {'key1': 'value1', 'key2': 'value2'} r = requests.post("http://httpbin.org/post", data=payload) print(r.text) {"args":{},"data":"",&qu

  • 使用Python爬虫库requests发送请求、传递URL参数、定制headers

    首先我们先引入requests模块 import requests 一.发送请求 r = requests.get('https://api.github.com/events') # GET请求 r = requests.post('http://httpbin.org/post', data = {'key':'value'}) # POST请求 r = requests.put('http://httpbin.org/put', data = {'key':'value'}) # PUT请

  • python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例

    使用Python爬虫库requests多线程抓取猫眼电影TOP100思路: 查看网页源代码 抓取单页内容 正则表达式提取信息 猫眼TOP100所有信息写入文件 多线程抓取 运行平台:windows Python版本:Python 3.7. IDE:Sublime Text 浏览器:Chrome浏览器 1.查看猫眼电影TOP100网页原代码 按F12查看网页源代码发现每一个电影的信息都在"<dd></dd>"标签之中. 点开之后,信息如下: 2.抓取单页内容 在浏

  • Python colormap库的安装和使用详情

    colormap库是Python中的一个对颜色进行处理的第三方库,常用于对RGB(red,green,blue三原色的缩写,真彩图像)颜色的转换,生成颜色图等. pypi文档地址:https://pypi.org/project/colormap/ 一.安装colormap pip install -i https://pypi.tuna.tsinghua.edu.cn/simple easydev pip install colormap colormap库依赖于easydev库,需要先安装e

  • Python定时库Apscheduler的简单使用

    在Python中需要执行定时任务,可以使用Apscheduler. Apscheduler是基于Quartz的Python定时任务框架,功能上跟Quartz一致,使用上跟Quartz也几乎一致. 核心的四个部分: ①触发器(trigger).②作业存储(job store).③执行器(executor).④调度器(scheduler) 安装依赖: pip install apscheduler 间隔时间调度: from apscheduler.schedulers.blocking import

  • Python爬虫库requests获取响应内容、响应状态码、响应头

    首先在程序中引入Requests模块 import requests 一.获取不同类型的响应内容 在发送请求后,服务器会返回一个响应内容,而且requests通常会自动解码响应内容 1.文本响应内容 获取文本类型的响应内容 r = requests.get('https://www.baidu.com') r.text # 通过文本的形式获取响应内容 '<!DOCTYPE html>\r\n<!--STATUS OK--><html> <head><m

  • python中requests库+xpath+lxml简单使用

    python的requests 它是python的一个第三方库,处理URL比urllib这个库要方便的多,并且功能也很丰富. [可以先看4,5表格形式的说明,再看前面的] 安装 直接用pip安装,anconda是自带这个库的. pip install requests 简单使用 requests的文档 1.简单访问一个url: import requests url='http://www.baidu.com' res = requests.get(url) res.text res.statu

  • Python中第三方库Requests库的高级用法详解

    一.Requests库的安装 利用 pip 安装,如果你安装了pip包(一款Python包管理工具,不知道可以百度哟),或者集成环境,比如Python(x,y)或者anaconda的话,就可以直接使用pip安装Python的库. $ pip install requests 安装完成之后,下面来看一下基本的方法: #get请求方法 >>> r = requests.get('https://api.github.com/user', auth=('user', 'pass')) #打印g

随机推荐