美文网首页
关于 python 网络请求 -- requests

关于 python 网络请求 -- requests

作者: Vissioon | 来源:发表于2017-05-31 15:20 被阅读255次

    个人感觉requests比urllib&urllib2好用 (不过requests基于urllib)

    • 安装

      pip install requests
      
    • get请求

      r = requests.get('http://www.baidu.com')
      
    • post请求

      data = {
          'hello': 'hello'
      }
      r = requests.post('http://www.baidu.com', data)
      
    • headers

      headers = {  # 请求headers
                  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 '
                                '(KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36',
                  'Connection': 'keep-alive',
              }
      r = requests.get('http://www.baidu.com', headers=headers)
      
    • 代理

      proxies = {
          'http':'http://192.168.1.171'
      }
      r = requests.get('http://www.baidu.com', proxies=proxies)
      
    • session共享

      s = requests.session
      s.get()
      s.post()  #后面的请求会带上前面的cookies
      
    • response

      r = requests.get('http://www.baidu.com')
      r.text                  # 字符串方式的响应体,会自动根据响应头部的字符编码进行解码
      r.status_code           # 响应状态码
      r.raw                   # 返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read() 读取
      r.content               # 字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
      r.headers               # 以字典对象存储服务器响应头
      r.json()                # requests中内置的JSON解码器
      r.raise_for_status()    # 失败请求(非200响应)抛出异常
      
    • 超时

      r = requests.get('http://www.baidu.com', timeout=3) #秒为单位
      
    • 文件

      url = 'http://localhost/upload'
      files = {
          'file': open('/home/john/hello.txt', 'rb')
      }
      r = requests.post(url, files=files)
      

    相关文章

      网友评论

          本文标题:关于 python 网络请求 -- requests

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