美文网首页
requests的基本用法

requests的基本用法

作者: 啊烟雨 | 来源:发表于2019-01-01 18:45 被阅读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地址,都可以尝试删除参数

    相关文章

      网友评论

          本文标题:requests的基本用法

          本文链接:https://www.haomeiwen.com/subject/laxolqtx.html