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

session和cookie

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

learn_requests的更多相关文章

随机推荐

  1. Tensorboard教程:显示计算图中节点信息

    Tensorboard显示计算图节点信息 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 强烈推荐Tensorflow实战Google深度学习框架 实验平台: Tensorflow1 ...

  2. LeetCode-Reverse Words in a String[AC源码]

    package com.lw.leet1; import java.util.Stack; /** * @ClassName:Solution * @Description: * Reverse Wo ...

  3. Selenium/HtmlUnit设置代理获取JS生成的网页

    通常我们使用Java提供的HttpURLConnection或者Apache的HttpClient获取的网页源代码都是直观可见的,其代码的内容和通过浏览器右键网页->点击查看网页源代码的内容一致 ...

  4. 【洛谷 P2216】 [HAOI2007]理想的正方形(二维ST表)

    题目链接 做出二维\(ST\)表,然后\(O(n^2)\)扫一遍就好了. #include <cstdio> #include <cstring> #include <a ...

  5. LOW逼三人组(二)----选择排序算法

    选择排序思路: 算法程序: def cal_time(func): # 装饰器 ,用来检测算法所执行的时间 def wrapper(*args,**kwargs): t1=time.time() re ...

  6. Callback2.0

    Callback定义? a callback is a piece of executable code that is passed as an argument to other code, wh ...

  7. 第三讲:ifconfig:最熟悉又陌生的命令行

    你知道怎么查看IP地址吗? 当面试听到这个问题的时候,面试者常常会觉得走错了房间.我面试的是技术岗位啊,怎么问这么简单的问题? 的确,即便没有专业学过计算机的人,只要倒腾过电脑,重装过系统,大多也会知 ...

  8. 【项目管理】git和码云的使用【转】

    转自:https://www.cnblogs.com/riverdubu/p/6491944.html 缘起 说了那么多关于git和码云相关的事,一直都没给大伙讲解这个码云究竟是个啥玩意儿. 今天就给 ...

  9. python requests模块手动设置cookies的几种方式

    def use_cookie(self): cookies="YF-V5-G0=731b77772529a1f49eac82a9d2c2957f; SUB=_2AkMsEgief8NxqwJ ...

  10. 在浏览器中输入www.baidu.com后执行的全过程

    链接 http 请求过程——当我们在浏览器输入 www.baidu.com,然后回车之后的详解. 1)域名解析(域名 www.baidu.com变为 ip 地址). 1.浏览器搜索自己的DNS缓存(维 ...