zoukankan      html  css  js  c++  java
  • learn_requests

     1 # -*- coding: utf-8 -*-
     2 import requests
     3 
     4 URL_IP = 'http://localhost:8000/ip'
     5 URL_GET = 'http://localhost:8000/get'
     6 
     7 
     8 def use_simple_requests():
     9     response = requests.get(URL_IP)
    10     print '>>>>Response Headers:'
    11     print response.headers
    12     print '>>>>Response body:'
    13     print response.text
    14 
    15 
    16 def use_params_requests():
    17     params = {'param1': 'hello', 'param2': 'world'}
    18     response = requests.get(URL_GET, params=params)
    19     print '>>>>Response Headers:'
    20     print response.headers
    21     print '>>>>Status Code:'
    22     print response.status_code
    23     print '>>>>Reason:'
    24     print response.reason
    25     print '>>>>Request body:'
    26     print response.text
    27 
    28 if __name__ == '__main__':
    29     print '>>>Use simple requests:'
    30     use_simple_requests()
    31     print ''
    32     print '>>>Use params requests:'
    33     use_params_requests()
     1 # -*- coding: utf-8 -*-
     2 import urllib
     3 import urllib2
     4 
     5 URL_IP = 'http://localhost:8000/ip'
     6 URL_GET = 'http://localhost:8000/get'
     7 
     8 
     9 def use_simple_urllib2():
    10     response = urllib2.urlopen(URL_IP)
    11     print '>>>>Response Headers:'
    12     print response.info()
    13     print '>>>>Response body:'
    14     print ''.join([line for line in response.readlines()])
    15 
    16 
    17 def use_params_urllib2():
    18     params = urllib.urlencode({'param1': 'hello', 'param2': 'world'})
    19     response = urllib2.urlopen('?'.join([URL_GET, '%s']) % params)
    20     print '>>>>Response Headers:'
    21     print response.info()
    22     print '>>>>Status Code:'
    23     print response.getcode()
    24     print '>>>>Request body:'
    25     print ''.join([line for line in response.readlines()])
    26 
    27 if __name__ == '__main__':
    28     print '>>>Use simple urllib2:'
    29     use_simple_urllib2()
    30     print ''
    31     print '>>>Use params urllib2:'
    32     use_params_urllib2()
     1 # -*- coding: utf-8 -*-
     2 import json
     3 import requests
     4 from requests import exceptions
     5 
     6 URL = 'https://api.github.com'
     7 
     8 
     9 def build_uri(endpoint):
    10     return '/'.join([URL, endpoint])
    11 
    12 
    13 def better_print(json_str):
    14     return json.dumps(json.loads(json_str), indent=4)
    15 
    16 
    17 def request_method():
    18     response = requests.get(build_uri('user/emails'), auth=('imoocdemo', 'imoocdemo123'))
    19     print better_print(response.text)
    20 
    21 
    22 def params_request():
    23     response = requests.get(build_uri('users'), params={'since': 11})
    24     print better_print(response.text)
    25     print response.request.headers
    26     print response.url
    27 
    28 
    29 def json_request():
    30     # response = requests.patch(build_uri('user'), auth=('imoocdemo', 'imoocdemo123'), json={'name': 'babymooc2', 'email': 'hello-world@imooc.org'})
    31     response = requests.post(build_uri('user/emails'), auth=('imoocdemo', 'imoocdemo123'), json=['helloworld@github.com'])
    32     print better_print(response.text)
    33     print response.request.headers
    34     print response.request.body
    35     print response.status_code
    36 
    37 
    38 def timeout_request():
    39     try:
    40         response = requests.get(build_uri('user/emails'), timeout=10)
    41         response.raise_for_status()
    42     except exceptions.Timeout as e:
    43         print e.message
    44     except exceptions.HTTPError as e:
    45         print e.message
    46     else:
    47         print response.text
    48         print response.status_code
    49 
    50 
    51 def hard_requests():
    52     from requests import Request, Session
    53     s = Session()
    54     headers = {'User-Agent': 'fake1.3.4'}
    55     req = Request('GET', build_uri('user/emails'), auth=('imoocdemo', 'imoocdemo123'), headers=headers)
    56     prepped = req.prepare()
    57     print prepped.body
    58     print prepped.headers
    59 
    60     resp = s.send(prepped, timeout=5)
    61     print resp.status_code
    62     print resp.request.headers
    63     print resp.text
    64 
    65 if __name__ == '__main__':
    66     hard_requests()
     1 # -*- coding: utf-8 -*-
     2 import requests
     3 
     4 response = requests.get('https://api.github.com')
     5 print "状态码,具体解释"
     6 print response.status_code, response.reason
     7 print "头部信息"
     8 print response.headers
     9 print "URL 信息"
    10 print response.url
    11 print "redirect 信息"
    12 print response.history
    13 print "耗费时长"
    14 print response.elapsed
    15 print "request 信息"
    16 print response.request.method
    17 
    18 print '----------------------'
    19 
    20 print "编码信息"
    21 print response.encoding
    22 print "消息主体内容: byte"
    23 print response.content, type(response.content)
    24 print "消息主体内容: 解析"
    25 print response.text, type(response.text)
    26 print "消息主体内容"
    27 print response.json(), type(response.json())
     1 # -*- coding: utf-8 -*-
     2 import requests
     3 
     4 
     5 def get_key_info(response, *args, **kwargs):
     6     """回调函数
     7     """
     8     print response.headers['Content-Type']
     9 
    10 
    11 def main():
    12     """主程序
    13     """
    14     requests.get('https://api.github.com', hooks=dict(response=get_key_info))
    15 
    16 main()
     1 # -*- coding: utf -*-
     2 import requests
     3 
     4 
     5 def download_image():
     6     """demo: 下载图片, 文件
     7     """
     8     headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36'}
     9     url = "http://img3.imgtn.bdimg.com/it/u=2228635891,3833788938&fm=21&gp=0.jpg"
    10     response = requests.get(url, headers=headers, stream=True)
    11     with open('demo.jpg', 'wb') as fd:
    12         for chunk in response.iter_content(128):
    13             fd.write(chunk)
    14 
    15 
    16 def download_image_improved():
    17     """demo: 下载图片
    18     """
    19     # 伪造headers信息
    20     headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36'}
    21     # 限定url
    22     url = "http://img3.imgtn.bdimg.com/it/u=2228635891,3833788938&fm=21&gp=0.jpg"
    23     response = requests.get(url, headers=headers, stream=True)
    24     from contextlib import closing
    25     with closing(requests.get(url, headers=headers, stream=True)) as response:
    26         # 打开文件
    27         with open('demo1.jpg', 'wb') as fd:
    28             # 每128写入一次
    29             for chunk in response.iter_content(128):
    30                 fd.write(chunk)
    31 
    32 download_image_improved()

     session和cookie

    from:http://www.imooc.com/learn/736

  • 相关阅读:
    创建文件并写入内容
    java自动压缩文件并加密
    Java自动发送带图片邮件(带附件)
    eclipse正则表达式搜索
    解决:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
    spring整合mybatis(原始dao和mapper代理两种方式)
    (解决)mysql1366中文显示错误的终极解决方案
    pdf合并、拆分工具
    ScheduledExecutorService定时方法
    json数据包含特殊字符解析失败
  • 原文地址:https://www.cnblogs.com/jinxiao-pu/p/7400740.html
Copyright © 2011-2022 走看看