requests

作者: 蒲小帅丶 | 来源:发表于2018-12-03 09:31 被阅读0次

    requests库

    基本用法api
    用法
    获取url response=requests.get("www.baidu.com")
    获取状态码 response.states_code
    返回html response.text
    返回头部信息 response.headers
    返回请求的url response.url
    解码 response.content.decode("utf-8")
    请求方式

    get(),post(),put()等
    相关代码

    import requests
    response=requests.get("https://www.baidu.com/")
    content=response.text
    #print(content)
    data={
        'first':True,
        'pn':1,
        'kd':"后端开发"
    }
    headers={
        'Referer':"https://www.lagou.com/jobs/list_%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91?city=%E5%85%A8%E5%9B%BD&cl=false&fromSearch=true&labelWords=&suginput=",
        'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"
    }
    response1=requests.post("https://www.lagou.com/jobs/companyAjax.json?needAddtionalResult=false",data=data,headers=headers)
    print(response1.json())
    
    response的对象属性
    属性 说明
    r.status_code HTTP请求的返回状态,200表示成功
    r.text 页面对应内容
    r.encodeing 获取Header中猜测的响应内容编码方式
    r.apparent_encoding 从内容中分析出响应内容编码方式(备用编码)
    r.content HTTP响应内容的二进制形式

    注意:response.text和response.content的区别

    1. response.content:从网络上获取的数据,没有经过任何解码,所以是bytes类型,在硬盘和网络上都是以bytes传递的
    2. response.text这是进行了解码的字符串,requests会根据自己的猜测判断编码方式,如果猜测错误,就会乱码,这时候就可以使用response.content.decode("utf-8")进行手动解码
    requests库异常
    异常 说明
    requests.ConnectionError 网络连接错误异常,如DNS查询失败、拒绝连接等
    requests.HTTPError HTTP错误异常
    requests.URLRequired URL缺失异常
    requests.TooManyRedirects 超过最大重定向次数,产生重定向异常
    requests.ConnectTimeout 连接远程服务器超时异常
    requests.Timeout 请求URL超时,产生超时异常
    Requests使用代理

    https://www.httpbin.org/ip 该网站能展示你 当前电脑请求ip
    参考资料

    1. 动态设置User-Agent
    2. 使用代理IP,这是爬虫/反爬虫的第二大招,通常也是最好用的。
    proxy = {
        'http': '117.131.99.210:53281'
    }
    response = requests.get("https://www.httpbin.org/ip", proxies=proxy)
    
    处理cookies

    使用seesion回话对象,保存登录对象

    import requests
    
    url = "http://www.renren.com/SysHome.do"
    data = {
        'email': "xxxxxx@qq.com",
        'password': 'xxxxx'
    }
    headers = {
        'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"
    }
    session = requests.session()
    session.post(url=url, data=data, headers=headers)
    response = session.get("http://www.renren.com/xxxxx/profile")
    with open("renren.html", 'w', encoding='utf8') as fp:
        fp.write(response.text)
    
    处理不信任的SSL证书

    添加 verify=flase

    相关文章

      网友评论

          本文标题:requests

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