requests的基本用法

2019-01-01  本文已影响0人  啊烟雨

1.作用:发送请求获取响应

为什么使用requesst?

1)requests底层实现的是urllib

2)requests在python2和python3中通用,方法完全一样

3)requests简单易用(python特性)

4)requests能够帮助我们解压响应内容(自动解压完善请求头,自动获取cookie)

2. 发送简单的get请求、获取响应

response = requests.get(url)

3. response响应对象常用的属性

一般来说名词,往往都是对象的属性,对应的动词是对象的方法

response.url

response.status_code 响应状态码

response.text 响应体 str类型

response.content 响应体 bytes类型

response.headers 响应对应的请求头

response.request.headers 响应头

response.cookies 响应的cookie (经过了set-cookie动作)

response.request._cookies 响应对应请求的cookie

4. 解决响应内容中文乱码

response.text 是requests模块基于chardet模块对响应内容的编码格式做推测,进行转换并返回str类型

response.content.decode(‘utf8’)

decode的参数要去尝试 ascii gbk gb2312 iso-8859-1

5.获取图片保存到本地

找到图片的url

发送请求获取响应

保存图片:

图片url对应的响应内容就是图片本身!

图片保存的格式

打开文件的方式 流媒体必须以二进制方式写入!

6.发送带header的请求

1)为什么请求需要带上header:模拟浏览器,欺骗服务器,获取和浏览器一致的内容

2)header的形式:字典

headers = {“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36”}

3)模仿浏览器发送请求就需要带上请求头(浏览器在发送请求过程中会携带的请求头)

4)用法:resp = requests.get(url, headers={})

5)完整代码:

7.发送带查询字符串(带参数)的请求

1)什么是请求参数:我们在使用百度搜索的时候经常发现URL地址中会有一个?,那么该问号后边就是请求参数,又叫做查询字符串

url = ‘https://www.baidu.com/s?wd=python’

其中查询字符串是 “wd=python”

2)请求参数的形式:字典

a. url中直接携带查询字符串发送请求

resp = requests.get(url, headers=headers)

b.利用发送请求的方法中params参数接收查询字符串构造的字典

params = {‘wd’: ‘python’}

resp = requests.get(url, headers=headers, params=params)

3)关于参数的注意点

在url地址中, 很多参数是没有用的,比如百度搜索的url地址,其中参数只有一个字段有用,其他的都可以删除 如何确定那些请求参数有用或者没用:挨个尝试! 对应的,在后续的爬虫中,越到很多参数的url地址,都可以尝试删除参数

上一篇下一篇

猜你喜欢

热点阅读