requests

作者: 噜噜迅儿 | 来源:发表于2018-06-22 11:37 被阅读0次

    安装requests

    pip install requests
    

    使用requests

    GET请求

    import requests
    
    r = requests.get('https://www.douban.com/')
    
    # 对于带参数的URL,传入一个dict作为params参数
    r = requests.get('https://www.douban.com/search', params={'q': 'python', 'cat': '1001'}) 
    r.url
    
    # 对于特定类型的响应,例如JSON,可以直接获取
    r = requests.get('https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20%3D%202151330&format=json')
    r.json()
    
    # 需要传入HTTP Header时,我们传入一个dict作为headers参数
    r = requests.get('https://www.douban.com/', headers={'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit'})
    
    # 传入Cookie
    cs = {'token': '12345', 'status': 'working'}
    r = requests.get(url, cookies=cs)
    
    # 指定超时
    r = requests.get(url, timeout=2.5) # 2.5秒后超时
    
    r.status_code
    r.text
    r.encoding
    r.content  # 获取bytes对象
    r.headers # 获取headers
    r.cookies['ts'] # 获取cookies
    

    POST请求

    import requests
    
    r = requests.post('https://accounts.douban.com/login', data={'form_email': 'abc@example.com', 'form_password': '123456'})
    
    # requests默认使用application/x-www-form-urlencoded对POST数据编码。
    # 如果要传递JSON数据,可以直接传入json参数
    params = {'key': 'value'}
    r = requests.post(url, json=params) # 内部自动序列化为JSON
    
    # 上传文件
    upload_files = {'file': open('report.xls', 'rb')}
    r = requests.post(url, files=upload_files)
    

    在读取文件时,注意务必使用'rb'即二进制模式读取,这样获取的bytes长度才是文件的长度。

    post()方法替换为put()delete()等,就可以以PUT或DELETE方式请求资源。

    相关文章

      网友评论

          本文标题:requests

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