requests库的用法

5 篇文章 0 订阅
4 篇文章 0 订阅

requests介绍

requests库是python优秀的第三方http请求库,使用起来简洁强大,需要额外安装。
可使用pip工具安装 : pip install requests

基本用法

  1. 请求网页

    import requests
    response = requests.get("https://www.baidu.com")
    

    仅需简单一步便可实现各种方法的请求(还有post(), put(), delete()等请求方法)
    响应的response对象包括text,cookies,content,headers,statuts_code,url,history等属性可直接使用。

  2. 传入参数
    需要在传入参数时可使用params这个参数。

    import requests
    data = {
    	'name':'jaychou',
    	'age':22
    }
    r = requests.get('http://httpbin.org/get',params=data)
    print(r.json())  #json()方法可将json字符串转化为字典,(字符串里必须时json格式)
    
  3. 添加headers
    先构造headers字典,在User-Agent字段设置请求头,再在方法使用headres参数构造请求。

    import requests
    headers = {
        'User-Agent':'Mozilla/5.0'
    }
    r = requests.get('https://www.zhihu.com/explore',headers=headers)
    
  4. POST请求
    使用data参数传入数据。

    import requests
    data = {
        'name':'jaychou',
        'age':22
    }
    r = requests.post('http://httpbin.org/post',data=data)
    

高级用法

基本的请求实现了,而高级一点的功能(如Cookies设置,代理设置等)用requests库实现也十分简单,不用像urllib库那样需要用handler来构建opener。

  1. 文件上传
    可用requests模拟提交一些数据文件:

    import requests
    
    files = {'file': open('photo.jpg','rb')}
    r = requests.post('http://httpbin.org/post',files=files)
    
  2. Cookies设置

    • 获取cookies:直接使用response对象的cookies属性获取。
    import requests
    r = requests.get('https://www.baidu.com)
    print(r.cookies)
    
    • 使用cookie来维持登录状态 : 在请求头的Cookie字段设置你自己的cookie。
    import requests
    headers = {
        'Cookie':'你的cookie',
        'User-Agent':'Mozilla/5.0'
    }
    r = requests.get('https://www.zhihu.com',headers=headers)
    
  3. 会话维持
    用requests.get()等方法打开的页面就是一个新的会话,相当于新开了一个浏览器打开。 这样不利于持续的访问网站,这时就需要维持当前会话,requests中使用Session对象来维持会话,而不用担心cookies问题。

    import requests
    s = requests.Session()
    s.get('http://httpbin.org/cookies/set/number/1234') #设置cookie
    r = s.get('http://httpbin.org/cookies')  #重新访问看cookie是否保存,保存则说明是同一个会话。
    
  4. SSL证书验证
    当发送HTTP请求时,requests会自动检查SSL证书,可以使用verify参数设置为False来跳过证书的检查。

  5. 代理设置
    使用proxies参数设置代理:

    import requests
    proxies = {  
        'http':"http://10.10.1.10:3128",
        'https':'https://10.10.1.10:1080'
    }
    requests.get('https://www.taobao.com",proxies=proxies)
    
    #如果需要认证,可这样设置代理http://user:password@host:port
    
  6. 超时设置
    可使用timeout参数设置响应时间,超过这个时间便会报错,避免响应太慢时一直等待,时间单位为秒。
    r = requests.get('url',timeout=1)

  7. 身份认证

    import requests
    r = requests.get('http://localhost:5000',auth=('username','password'))
    
    #第二种认证方法
    # import requests
    # from requests.auth import HTTPBasicAuth
    #
    # r = requests.get('http://loaclhost:5000',auth=HTTPBasicAuth('username','password'))
    
  8. Prepared Request

    from requests import Request, Session
    
    url = 'http://httpbin.org/post'
    data = {
        'name':'jaychou'
    }
    headers = {
        'User-Agent':'Mozilla./5.0'
    }
    s = Session()
    req = Request('POST',url,data=data,headers=headers)
    prepped = s.prepare_request(req)
    r = s.send(prepped)
    print(r.text)
    

    这里引入了Request,将各个参数构造成一个Request对象,再用Session的prepare_request()方法将其转化为一个Prepared Request对象,最后调用send()发送即可。

更多用法可阅读reuqests库的官方文档.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值