美文网首页
2019-06-06Requests

2019-06-06Requests

作者: hcc_9bf4 | 来源:发表于2019-06-09 20:12 被阅读0次

    官方文档
    http://cn.python-requests.org/zh_CN/latest/
    安装
    pip install requests
    用来做什么?
    和urllib是同一个位置的

    • get请求
      r=requests.get(url)#发送请求,构建请求对象
      print(r.encoding)#打印编码方式
      r.encoding='utf8' #把编码方式设置为utf8
      print(r.text) #按字符串类型打印响应内容
      print(r.content) #按字节类型打印响应内容
      print(r.status_code) #查看状态码
      print(r.headers)#查看响应头部
      print(r.url) #查看请求的URL
      print(r.json()) #查看json格式数据
      定制头部

    url='http://www.baidu.com/?'
    headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
    }
    r=requests.get(url,headers=headers)

    • 带参数的get请求
      'url='https://www.baidu.com/s?ie=utf-8&wd=日本 ''
      headers={
      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
      }
      data={
      'ie':'utf-8',
      'wd':'日本',
      }
      怎么来访问呢?
      data是一个原生字典即可

    r=requests.get(url,headers=headers,params=data) #params参数引进关键字字典

    import requests
    
    #url='https://www.baidu.com/s?ie=utf-8&wd=日本'
    url='http://www.baidu.com/s?'
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
    }
    data={
        'ie':'utf-8',
        'wd':'日本',
    }
    # parameters 参数
    r=requests.get(url,headers=headers,params=data) #params参数引进关键字字典
    
    #把结果写入到文件中
    with open('baidu.html','wb') as fp:
        fp.write(r.content)
    
    • post请求
      必应翻译为例:
      formdata是一个原生字典即可

    r=requests.post(url=url,headers=headers,data=formdata)

    查询text(英语)的汉语内容

    import requests
    
    url='https://cn.bing.com/ttranslationlookup?&IG=4626D48A591D4B11A887749CB21EACCE&IID=translator.5038.11'
    
    formdata={
        'text': 'wolf',
        'from': 'en',
        'to': 'zh-CHS',
    }
    
    
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
    }
    
    r=requests.post(url=url,headers=headers,data=formdata)
    #print(r.text)
    print(r.json())
    

    响应内容为:

    {'normalizedSource': 'wolf', 'displaySource': 'wolf', 'translations': [{'normalizedTarget': '狼', 'displayTarget': '狼', 'posTag': 'NOUN', 'confidence': 0.3775, 'prefixWord': '', 'backTranslations': [{'normalizedText': 'wolf', 'displayText': 'wolf', 'numExamples': 15, 'frequencyCount': 1850}, {'normalizedText': 'wolves', 'displayText': 'wolves', 'numExamples': 5, 'frequencyCount': 752}, {'normalizedText': 'coyote', 'displayText': 'coyote', 'numExamples': 5, 'frequencyCount': 38}, {'normalizedText': 'werewolf', 'displayText': 'werewolf', 'numExamples': 5, 'frequencyCount': 36}, {'normalizedText': 'lang', 'displayText': 'Lang', 'numExamples': 0, 'frequencyCount': 26}]}, {'normalizedTarget': '沃尔夫', 'displayTarget': '沃尔夫', 'posTag': 'NOUN', 'confidence': 0.108, 'prefixWord': '', 'backTranslations': [{'normalizedText': 'wolf', 'displayText': 'wolf', 'numExamples': 14, 'frequencyCount': 152}, {'normalizedText': 'whorf', 'displayText': 'Whorf', 'numExamples': 3, 'frequencyCount': 15}]}, {'normalizedTarget': '野 狼', 'displayTarget': '野狼', 'posTag': 'NOUN', 'confidence': 0.1011, 'prefixWord': '', 'backTranslations': [{'normalizedText': 'wolf', 'displayText': 'wolf', 'numExamples': 15, 'frequencyCount': 49}, {'normalizedText': 'wolves', 'displayText': 'wolves', 'numExamples': 5, 'frequencyCount': 24}, {'normalizedText': 'coyotes', 'displayText': 'coyotes', 'numExamples': 4, 'frequencyCount': 8}]}, {'normalizedTarget': '匹 狼', 'displayTarget': '匹狼', 'posTag': 'NOUN', 'confidence': 0.0985, 'prefixWord': '', 'backTranslations': [{'normalizedText': 'wolf', 'displayText': 'wolf', 'numExamples': 15, 'frequencyCount': 38}, {'normalizedText': 'wolves', 'displayText': 'wolves', 'numExamples': 2, 'frequencyCount': 10}]}, {'normalizedTarget': '大 灰 狼', 'displayTarget': '大灰狼', 'posTag': 'NOUN', 'confidence': 0.0979, 'prefixWord': '', 'backTranslations': [{'normalizedText': 'wolf', 'displayText': 'wolf', 'numExamples': 15, 'frequencyCount': 32}]}, {'normalizedTarget': '豺狼', 'displayTarget': '豺狼', 'posTag': 'NOUN', 'confidence': 0.0799, 'prefixWord': '', 'backTranslations': [{'normalizedText': 'wolf', 'displayText': 'wolf', 'numExamples': 15, 'frequencyCount': 31}, {'normalizedText': 'jackal', 'displayText': 'jackal', 'numExamples': 5, 'frequencyCount': 23}, {'normalizedText': 'wolves', 'displayText': 'wolves', 'numExamples': 2, 'frequencyCount': 12}]}, {'normalizedTarget': '恶 狼', 'displayTarget': '恶狼', 'posTag': 'NOUN', 'confidence': 0.0695, 'prefixWord': '', 'backTranslations': [{'normalizedText': 'wolf', 'displayText': 'wolf', 'numExamples': 9, 'frequencyCount': 15}, {'normalizedText': 'wolves', 'displayText': 'wolves', 'numExamples': 4, 'frequencyCount': 5}]}, {'normalizedTarget': '伍尔夫', 'displayTarget': '伍尔夫', 'posTag': 'NOUN', 'confidence': 0.0677, 'prefixWord': '', 'backTranslations': [{'normalizedText': 'woolf', 'displayText': 'Woolf', 'numExamples': 5, 'frequencyCount': 31}, {'normalizedText': 'wolf', 'displayText': 'wolf', 'numExamples': 10, 'frequencyCount': 21}]}]}
    [Finished in 0.6s]
    
    • ajax,get,post
      和上面是一样的
    • 代理

    r=requests.get(url,headers=headers,proxies=proxies)

    用法举例:

    import requests
    
    url='https://www.baidu.com/s?ie=utf-8&wd=ip'
    
    proxies={
        'http':'http://112.87.71.131:99999'
    }
    
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
    }
    
    r=requests.get(url,headers=headers,proxies=proxies)
    
    with open('daili.html','wb') as fp:
        fp.write(r.content)
    
    • cookie
      实现人人登录
      如果碰到会话相关问题,要首先创建一个会话
      s=requests.Session()
      往下所有操作都是通过s进行访问 s.get s.post
    import requests
    #如果碰到会话相关问题,要首先创建一个会话
    #往下所有操作都是通过s进行访问 s.get s.post
    s=requests.Session()
    #登录的url
    post_url='http://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=2019502038738'
    
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
    }
    
    
    formdata={
        'email':'15072447862',
        'icode':'',
        'origURL':'http://www.renren.com/home',
        'domain':'renren.com',
        'key_id':'1',
        'captcha_type':'web_login',
        'password':'b1de4c12697095c462d2b4090c0cb12d267ed14ec387019d225a3331a1ac3740',
        'rkey':'6d7d2086ddd44c39ae683b6d93c0a39f',
        'f':'https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DRNBaL_83zfySfbHMGf9t3XyLUQtDMiimZR9DW2_ehXC%26wd%3D%26eqid%3Dd992ef6000af2214000000035cfcfdc1',
    }
    r=s.post(url=post_url,headers=headers,data=formdata)
    
    # print(r.text)
    #登录后的url
    get_url='http://www.renren.com/970820607/profile'
    r=s.get(url=get_url,headers=headers)
    
    print(r.text)

    相关文章

      网友评论

          本文标题:2019-06-06Requests

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