前言

学习使我快乐,游戏使我伤心。今天rushB,又是白给的一天。

HXDM,让我们一起学习requests库的方法和使用,沉浸在代码的世界里。呜呜呜~~

一、requests库介绍

首先列出requests库的官方网站。它在这里:

requests库中文官网

requests库的宣言

Requests: HTTP for Humans

(霸气嗷)

它的官方网站里面有详细的使用文档,而且还有一些小例子,不想看罗里吧嗦的博客可以去官方网站学习。

requests库是基于

urllib

框架编写的。

二、requests库常见方法及说明

方法

说明

requests.get()

获取某个网页

requests.post()

发送 HTTP POST 请求

requests.put()

提交HTTP PUT 请求

requests.delete()

提交HTTP 删除请求

requests.head()

获取HTTP HEAD(头)信息

requests.options()

提交HTTP OPTINS 请求

三、response对象的属性及说明

在了解response对象的属性之前,先看一下什么是response对象。当我们使用浏览器时,比如说搜索CSDN,按F12打开开发者工具,在Network中我们可以看到下图红圈中的两种Headers。

request对象就是浏览器向服务器发送的请求,而response对象就是服务器对浏览器请求的响应。我们看一下下面的代码。

import requests

r = requests.get('https://www.baidu.com')

所以我们可以把

'www.baidu.com'

看成request请求,而方法

requests.get()

返回的就是response响应,所以我们就得到来response对象

r

。我们来直接打印一下

r

试试。

import requests

r = requests.get('https://www.baidu.com')

print(r)

执行结果:

可以看到结果并不是我们想象的百度网页的html代码,而是响应状态码,这就是因为

r

在这里是一个response对象,我们需要通过对它属性的访问来得到我们想要的信息。

response对象的属性:

属性

说明

response.text

HTTP 响应的页面内容

response.encoding

文本的编码格式

response.apparent_encoding

从内容分析出的响应内容编码方式

response.status_code

HTTP 响应状态

response.content

HTTP 响应页面内容的二进制格式

我们在来看一下下面的代码

import requests

r = requests.get('https://www.baidu.com')

r.encoding = 'utf-8'

print(r.text)

执行结果:

我们得到了百度首页的html代码

四、requests库常见方法的使用

1、requests.get()的使用

get方法是requests库最常用的方法,我们可以通过改变参数来获取我们想要的HTTP 响应。

比如说我们直接访问豆瓣网站,看看会有什么

代码:

import requests

r = requests.get('https://www.douban.com')

r.encoding = 'utf-8'

print(r.text)

执行结果:

哎,怎么回事,啥东西也没有,代码没有写错呀!为什么没有文本呢?

我们来打印一下HTTP 的状态响应码。

代码:

import requests

r = requests.get('https://www.douban.com')

r.encoding = 'utf-8'

print(r.status_code)

执行结果:

可以看到HTTP 的状态响应码是

418

,这个状态码是什么意思呢?

418

:它的含义是当客户端给一个茶壶发送泡咖啡的请求时,那就就返回一个错误的状态码表示:I’m a teapot,即:“我是一个茶壶”。这个HTTP状态码在某些网站中用作彩蛋,另外也用于一些

爬虫警告

。意思就是,我们被警告了,豆瓣告诉我们,“你这个坏爬虫,不遵守规定,人家就不给你看!哼╭(╯^╰)╮!”。所以我们需要通过正常的途径访问豆瓣网,还好

requests.get()

方法允许我们添加一些参数模拟浏览器访问,这下我们可以说,“嘿嘿,跑不掉了吧”。

如何模仿浏览器访问呢?

打开一个网页,按F12打开开发者模式,在network中,随便点击一个name下的项目,

可以看到下面的情况

Request Headers下面的大红圈里的

User-Agent

就是告诉服务器浏览器的信息。我们可以在代码中怎样写:

import requests

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 \

(KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'

} # 模拟浏览器访问

r = requests.get('https://www.douban.com', headers=headers)

r.encoding = 'utf-8'

print(r.text)

print('状态码:')

print(r.status_code)

执行结果:

可以看到我们得到了豆瓣的html代码,状态码也是

200

requests.get()

方法还有很多有用的参数,比如说可以用

payload = {'key1': 'value1', 'key2': 'value2'}

r = requests.get("http://httpbin.org/get", params=payload)

来代替

r = requests.get("http://httpbin.org/get?key1=value1&key2=value2")

你可以去

requests库官网

自行探索,多写代码,才能提高。

2、requests.post()方法的使用

requests库还允许我们以post方式请求HTTP 响应,因为有些网页并不接受在

URL

后面添加

Vaule

,它可能只接受表单。我们可以这样写:

payload = {'key1': 'value1', 'key2': 'value2'}

r = requests.post("http://httpbin.org/post", data=payload)

这样我们就可以自己定制表单的内容。emmm至于表单是什么,这需要你去学习。

3、put、delete等方法的使用

其他方法的使用自然和上面都是大同小异,学习了关于HTTP 请求方面的知识,自然就知道我们在爬取网页资源该用哪种方法了。

使用例子:

r = requests.put('http://httpbin.org/put', data = {'key':'value'})

r = requests.delete('http://httpbin.org/delete')

r = requests.head('http://httpbin.org/get')

r = requests.options('http://httpbin.org/get')

4、练手网站

http://httpbin.org

是一个接受request和响应response的网站,平常可以在上面练手。

加油!

python中requests的常用方法_Python爬虫简介(2)——请求库的常用方法及使用,python,入门,二,requests,常见,和,库中,文官,网...相关推荐

  1. python怎么识别图片验证码_python爬虫20 | 小帅b教你如何使用python识别图片验证码...

    当你在爬取某些网站的时候 对于你的一些频繁请求 对方会阻碍你 常见的方式就是使用验证码 验证码的主要功能 就是区分你是人还是鬼(机器人) 人 想法设法的搞一些手段来对付技术 而 技术又能对付人们的想法 ...

  2. python requests下载网页_python爬虫 requests-html的使用

    一 介绍 Python上有一个非常著名的HTTP库--requests,相信大家都听说过,用过的人都说非常爽!现在requests库的作者又发布了一个新库,叫做requests-html,看名字也能猜 ...

  3. python中scrapy是什么_python爬虫中scrapy组件有哪些?作用是什么?

    最近苹果12的消息一直活跃,连小编这种不是果粉的人都知道了.虽然苹果是一部性能不错的手机,但是它各个零件却是来源于不同的地方,可见再好的成品也是需要不同零件支撑的.那么,python爬虫中scrapy ...

  4. python爬取多页_Python 爬虫 2 爬取多页网页

    本文内容: Requests.get 爬取多个页码的网页 例:爬取极客学院课程列表 爬虫步骤 打开目标网页,先查看网页源代码 get网页源码 找到想要的内容,找到规律,用正则表达式匹配,存储结果 Re ...

  5. python table数据抓取_Python爬虫:数据抓取工具及类库详解

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: ncepu_Chen PS:如有需要Python学习资料的小伙伴可以 ...

  6. python 获取html js 变量_Python爬虫与反反爬虫实践

    因为要收集数据,所以打算自己撸一个爬虫,期间碰到网站的反爬措施,让我非常头疼,在此记录一下. 基础 爬虫的基础是不需要自己手动通过浏览器访问网页,而是通过程序构造网络请求,获取网站返回的结果.例如使用 ...

  7. python爬虫今日头条_python爬虫—分析Ajax请求对json文件爬取今日头条街拍美图

    python爬虫-分析Ajax请求对json文件爬取今日头条街拍美图 前言 本次抓取目标是今日头条的街拍美图,爬取完成之后,将每组图片下载到本地并保存到不同文件夹下.下面通过抓取今日头条街拍美图讲解一 ...

  8. beautifulsoup网页爬虫解析_Python爬虫3步曲:5分钟学习用Python解析网页

    使用正则表达式解析网页是Python的一个擅长的领域.如果还想更加深入地学习正则表达式,或者在平时经常用到正则表达式,可以进入Regular Expression 101网站学习,网站地址为 http ...

  9. python爬取网页停止_Python爬虫之爬取静态网页

    所谓网络爬虫,通俗的讲,就是通过向我们需要的URL发出http请求,获取该URL对应的http报文主体内容,之后提取该报文主体中我们所需要的信息.所以,想要学习python爬虫,需要具备一些http的 ...

最新文章

  1. LeetCode简单题之删除排序链表中的重复元素
  2. Future is IMPACT! 未来就是影响力!(演讲稿)
  3. 微信在诺基亚手机登录服务器繁忙,马化腾正式宣布:禁止在该手机上登录QQ和微信?网友:诺基亚再见...
  4. 【大白话系列】深入浅出Cleaner+虚引用完成堆外内存的回收
  5. centos 卸载自带的 java
  6. android报错及解决1--Bitmap加载时,报bitmap size exceeds VM budget
  7. openstack 重启mysql_openstack 重启服务命令
  8. Servlet 介绍
  9. Could not autowire. No beans of ‘xxxMapper‘ type found.
  10. CCF201312-1 出现次数最多的数(100分)
  11. oracle中批量修改表,Oracle 批量修改某个用户下表的表空间
  12. 代码审计工具Fortify 17.10及Mac平台license版本
  13. 深蓝超级计算机象棋人机大战,象棋人机大战绝唱:超级计算机“浪潮天梭”vs“象棋第一人”许银川的巅峰之战...
  14. 完全仿京东电商小程序的开源项目,可赚佣金
  15. python omron Fins -PLC和上位机socket通讯( tcy)
  16. 安卓Dalvik VM虚拟机
  17. c语言调用延时子程序的例子,C语言精确延时.doc
  18. c语言中最大公约数的编程,C语言中最大公约数求法
  19. web项目高并发量网站解决方案
  20. 【详细图文教程】通过UNiDAYS进行Apple教育优惠认证

热门文章

  1. [转]一份ASP内存的释放的实验报告
  2. Java黑皮书课后题第6章:**6.31(金融应用:信用卡号的合法性验证)和**6.32 编写程序,提示用户输入一个long型整数的信用卡号码,显示这个数字是合法的还是非法的
  3. 2012百度实习生招聘面试题
  4. Docker进阶-资源管理Swarm+Portainer
  5. Java往事之《返回整数的长度》
  6. oracle比较好的链接记录
  7. Servlet - Upload、Download、Async、动态注册
  8. [转]Mogre 环境配置问题(Exception from HRESULT: 0x800736B1)
  9. 操作系统实验报告14:Peterson 算法
  10. Swaks-smtp瑞士军刀(smtp邮件)