python-Requests库学习笔记(二)

学习了如何使用GET方法打开网页,但我要如何判断是否成功获取一个网页,还是失败?这两者之间有什么不同的回显,除此之外还有其他回显吗?

HTTP状态码

  • status_code
>>> r= requests.get('https://www.***.com/get')
>>> r.status.code
200

这里返回值是200,代表什么呢?这里给出常见状态码所代表的意思

  • 200 - 请求成功
  • 301 - 资源(网页等)被永久转移到其它URL
  • 404 - 请求的资源(网页等)不存在
  • 500 - 内部服务器错误

除了以上这些,其实还有很多,建议搜一下,对后面学习有一定帮助


  • raise_for_status()
>>> r = requests.get('https://www.***.com/get')
>>> r.raise_for_status()

在这个方法内部,会自动检测获取网页状态码是否为200,不是就会报错
好处在于不需要多余添加if条件语句判断,在try-except语句中有很大的作用


知道网页获取成功,那要怎样查看获取的网页呢

查看获取网页

  • text
>>> r = requests.get('https://www.***.com/get')
>>> r.text

在这里插入图片描述
奇怪?并没有像想象中放回一大堆字符,返回有多少行

因为网页返回的是一大堆字符串,在以前python的IDLE中,直接返回这么一大串字符,会出现莫名其妙的bug,在python3.7中则返回这些字符有多少行。因此,我们要查看返回结果,最好使用截取字符串方式查看

  • text[ : ]
>>> r = requests.get('https://www.***.com/get')
>>> r.text[:500]

在这里插入图片描述

截取前面500个字符查看,就可以看到这么HTML标签了


学习嘛,是需要举一反三

在文章开头提到查看状态码的函数里status_code和raise_for_status()

虽然是两个不同的函数,但为什么一个加括号一个不加括号

r.status_code和r.raise_for_status(),除去功能外,他们本质区别是什么

使用r.status_code()或r.raise_for_statues会怎样?

猜你喜欢

转载自blog.csdn.net/weixin_43821663/article/details/86504929