Python requests库的使用
来自CloudWiki
requests库概述
中文版概述: http://docs.python-requests.org/zh_CN/latest/
英文版概述: http://docs.python-requests.org/en/master/
安装resuests库
- 执行命令:
pip3 install requests
- 具体安装方法,可参考Python第三方库的安装
requests库的用法
获取网页
通过get方法返回网页,返回的是一个对象;网页内容作为一个对象更好操作。
>>> import requests >>> r = requests.get("http://www.baidu.com")#打开一个网页 >>> type(r) <class 'requests.models.Response'>
常用属性
Response对象常用的属性有:
- status_code:返回请求HTTP后的状态
- text:请求的页面内容
- encoding:返回页面内容的编码方式
- content:页面内容的二进制形式
- 常用用法:
>>> import requests >>> r = requests.get("http://www.baidu.com")#打开一个网页 >>> print(r.status_code) #返回状态 200 >>> print(r.text) #观察返回的内容 '<!DOCTYPE html>\r\n<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>ç\x99¾åº¦ä¸\x80ä¸\x8bï¼\x8cä½\xa0å°±ç\x9f¥é\x81\x93</title></head> ... >>>r.encoding #查看编码方式,因为是这种,所以乱码 'ISO-8859-1' >>> r.encoding = 'utf-8' >>> print(r.text) '<!DOCTYPE html>\r\n<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head>
异常处理
初始版代码:将网页直接打印
import requests def getHTMLText(url): try: r = requests.get(url, timeout=30) r.raise_for_status() #如果状态不是200,引发异常 r.encoding = 'utf-8' #无论原来用什么编码,都改成utf-8 return r.text except: return "" while(True): url = input("请输入带http头的网址:") if url =='quit': break; print(getHTMLText(url))
改进版代码:将网页保存为文件