【Python】Python3网络爬虫实战-24、requests:基本使用

本文介绍了Python3中强大的网络爬虫库Requests的使用,包括GET和POST请求、设置Headers、处理Response等内容,展示了如何简单高效地发起网络请求并获取数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在前面一节我们了解了 Urllib 的基本用法,但是其中确实有不方便的地方。比如处理网页验证、处理 Cookies 等等,需要写 Opener、Handler 来进行处理。为了更加方便地实现这些操作,在这里就有了更为强大的库 Requests,有了它,Cookies、登录验证、代理设置等等的操作都不是事儿。

那么接下来就让我们来领略一下它的强大之处吧。

1 基本使用

本节我们首先来了解下 Requests 库的基本使用方法。

1. 准备工作

在本节开始之前请确保已经正确安装好了 Requests 库,如果没有安装可以参考第一章的安装说明。

2. 实例引入

在 Urllib 库中有 urlopen() 的方法,实际上它是以 GET 方式请求了一个网页。
那么在 Requests 中,相应的方法就是 get() 方法,是不是感觉表达更明确一些?
下面我们用一个实例来感受一下:

import requests
r=requests.get('http://httpbin.org/get')
print(type(r),r.status_code,type(r.text),r.text,type(r.cookies),r.cookies,sep='\n')

运行结果如下:

<class 'requests.models.Response'>
200
<class 'str'>
{
  "args": {}, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.21.0"
  }, 
  "origin": "114.253.118.8, 114.253.118.8", 
  "url": "https://httpbin.org/get"
}

<class 'requests.cookies.RequestsCookieJar'>
<RequestsCookieJar[]>
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

上面的例子中我们调用 get() 方法即可实现和 urlopen() 相同的操作,得到一个 Response 对象,然后分别输出了 Response 的类型,Status Code,Response Body 的类型、内容还有 Cookies。
通过上述实例可以发现,它的返回类型是 requests.models.Response,Response Body 的类型是字符串 str,Cookies 的类型是 RequestsCookieJar。
使用了 get() 方法就成功实现了一个 GET 请求,但这倒不算什么,更方便的在于其他的请求类型依然可以用一句话来完成。
用一个实例来感受一下:

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

在这里分别用 post()、put()、delete() 等方法实现了 POST、PUT、DELETE 等请求,怎么样?是不是比 Urllib 简单太多了?
其实这只是冰山一角,更多的还在后面。

3. GET请求

HTTP 中最常见的请求之一就是 GET 请求,我们首先来详细了解下利用 Requests 来构建 GET 请求的方法以及相关属性方法操作。

基本实例

首先让我们来构建一个最简单的 GET 请求,请求的链接为:http://httpbin.org/get,它会判断如果如果是 GET 请求的话,会返回响应的 Request 信息。

import requests

r = requests.get('http://httpbin.org/get')
print(r.text)
运行结果如下:
{
  "args": {}, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.10.0"
  }, 
  "origin": "122.4.215.33", 
  "url": "http://httpbin.org/get"
}

可以发现我们成功发起了 GET 请求,返回的结果中包含了 Request Headers、URL、IP 等信息。
那么 GET 请求,如果要附加额外的信息一般是怎样来添加?比如现在我想添加两个参数,名字 name 是 germey,年龄 age 是 22。构造这个请求链接是不是我们要直接写成:
r = requests.get(‘

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值