享受每一天,Just Enjoy !

0%

Python requests库(二)

本文是Python requests库 (一)的后续,简单的介绍一下python第三方库 requests的一些简单的高级用法

本文首发于伊洛的个人博客:https://yiluotalk.com,欢迎关注并查看更多内容!!!

1. 文件上传
  • 通过request 上传一张photo
    1
    2
    3
    4
    >>> import requests
    >>> files = {'file':open('photo.jpg', 'rb')}
    >>> r = requests.post('http://httpbin.org/post', files=files)
    >>> print(r.text)
    2. 获取 cookies
  • 访问知乎,然后获取cookies
    1
    2
    3
    4
    >>> import requests
    >>> r = requests.get("https://www.zhihu.com")
    >>> print(r.cookies)
    <RequestsCookieJar[<Cookie _xsrf=kpkc08adzcWJ2IZXxQAh85ujvtFiPArj for .zhihu.com/>]>
3. 会话维持
  • 如果需要访问的网页是需要登陆之后再使用的话就需要会话维持,一般在做接口自动化测试或者爬虫一些网站的时候,都是需要保持登录态
    1
    2
    3
    4
    5
    6
    7
    8
    >>> import requests
    >>> requests.get("http://httpbin.org/cookies/set/number/123456789")
    <Response [200]>
    >>> r = requests.get('http://httpbin.org/cookies')
    >>> print(r.text)
    {
    "cookies": {}
    }
  • 上面并没有获取到cookies ,因为request设置cookie和后来的获取cookie相当于打开了两个浏览器
  • 如何解决这个问题,我们需要用到session ,这是在自动化接口测试或者爬虫中经常会被用到,有必要掌握
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> import requests
    >>> s = requests.Session()
    >>> s.get('http://httpbin.org/cookies/set/number/123456789')
    <Response [200]>
    >>> r = s.get('http://httpbin.org/cookies')
    >>> print(r.text)
    {
    "cookies": {
    "number": "123456789"
    }
    }
  • 以上,成功保持会话
4. SSL证书验证
  • 你肯定会有过类似的这种经历,当你打开一个网页的时候会提示你访问的地址不安全,这是由于https协议需要证书
  • 程序访问后一定会报出 SSLError错误
  • 解决方式

1.设置verify = False
2.传入证书 cert="你的证书"

5.代理设置
  • 爬虫的时候通常会设置代理
  • 方式在proxies=输入你的代理
6. 超时设置
  • 限制应答时间,比如访问伊洛的个人博客https://yiluotalk.com ,设置超时1s
    1
    2
    3
    4
    5
    6
    # 伊洛Yiluo
    # https://yiluotalk.com
    >>> import requests
    >>> r = requests.get("https://yiluotalk.com", timeout = 1)
    >>> print(r.status_code)
    200
7.身份认证
  • 一些网站当你访问的时候首先会让你登录做验证
  • 解决方式,传入auth 参数 auth=HTTPBasicAuth('user', 'password')

在这里插入图片描述

关注公众号获取更多内容