设为首页 收藏本站
查看: 1560|回复: 0

[经验分享] Python学习笔记__13.2章 requests

[复制链接]

尚未签到

发表于 2018-8-10 08:33:58 | 显示全部楼层 |阅读模式
  # 这是学习廖雪峰老师python教程的学习笔记
  相比于Python内置的urllib模块,使用requests可以更好地处理URL资源。
  1、使用requests
  1)通过GET访问一个页面
  >>> import requests
  >>> r = requests.get('https://www.douban.com/') # 豆瓣首页
  >>> r.status_code
  200
  >>> r.text
  r.text
  '<!DOCTYPE HTML>\n<html>\n<head>\n<meta name=&quot;description&quot; content=&quot;提供图书、电影、音乐唱片的推荐、评论和...'
  2)对于带参数的URL,传入一个dict作为params参数:
  >>> r = requests.get('https://www.douban.com/search', params={'q': 'python', 'cat': '1001'})
  >>> r.url  # 我们实际请求的URL
  'https://www.douban.com/search?q=python&cat=1001'
  3)requests自动检测编码,可以使用encoding属性查看
  >>> r.encoding
  'utf-8'
  4)无论响应是文本还是二进制内容,我们都可以用content属性获得bytes对象
  >>> r.content
  b'<!DOCTYPE html>\n<html>\n<head>\n<meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; &quot;>\n...'
  4)对于特定类型的响应,例如JSON,可以直接获取
  >>> r = requests.get('https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20%3D%202151330&format=json')
  >>> r.json()
  {'query': {'count': 1, 'created': '2017-11-17T07:14:12Z', …
  5)需要传入HTTP Header时,我们传入一个dict作为headers参数:
  >>> r = requests.get('https://www.douban.com/', headers={'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit'})
  >>> r.text
  '<!DOCTYPE html>\n<html>\n<head>\n<meta charset=&quot;UTF-8&quot;>\n <title>豆瓣(手机版)</title>...'
  6)发送POST请求,只需要把get()方法变成post(),然后传入data参数作为POST请求的数据
  >>> r = requests.post('https://accounts.douban.com/login', data={'form_email': 'abc@example.com', 'form_password': '123456'})
  把post()方法替换为put(),delete()等,就可以以PUT或DELETE方式请求资源
  7)requests默认使用application/x-www-form-urlencoded对POST数据编码。如果要传递JSON数据,可以直接传入json参数
  params = {'key': 'value'}
  r = requests.post(url, json=params) # 内部自动序列化为JSON
  8)上传文件需要更复杂的编码格式,但是requests把它简化成files参数
  >>> upload_files = {'file': open('report.xls', 'rb')} #注意标示符b,这样获取的bytes长度才是文件的长度
  >>> r = requests.post(url, files=upload_files)
  9)获取响应头
  >>> r.headers
  {Content-Type': 'text/html; charset=utf-8', 'Transfer-Encoding': 'chunked', 'Content-Encoding': 'gzip', ...}
  >>> r.headers['Content-Type']
  'text/html; charset=utf-8'
  10)获取指定的Cookie
  >>> cs = {'token': '12345', 'status': 'working'}
  >>> r = requests.get(url, cookies=cs)
  11)要指定超时,传入以秒为单位的timeout参数
  >>> r = requests.get(url, timeout=2.5) # 2.5秒后超时

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-549435-1-1.html 上篇帖子: Python学习笔记__16.2章 TCP编程 下篇帖子: Python学习笔记__20.1章 协程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表