网页获取一般使用requests库。
requests库
1、定义:requests库是个简洁而且简单的处理HTTP请求的第三方库。
2、requests库中的网页请求函数:
函数 | 描述 |
get(url,[,timeout = n]) |
对应HTTP的GET方式,获取网页的最常用的方法,可增加timeout=n参数,设定每次请求超时时间为n秒 |
post(url,data = {'key':'value'}) | 对应HTTP的POST方式,其中字典用于传递客户数据 |
delete(url) | 对应HTTP的DELETE方式 |
head(url) | 对应HTTP的HEAD方式 |
options(url) | 对应HTTP的OPTIONS方式 |
put(url,data = {'key':'value'}) | 对应HTTP的PUT方式,其中字典用于传递客户数据 |
注:get()是获取网页的最常用的方法,在调用requests.get()函数后,返回的网页内容会保存为一个Response对象,其中,get()函数的参数url必须链接采用HTTP或HTTPS方式访问。
3、Response对象的属性:
属性 | 描述 |
status_code | HTTP请求的返回状态,整数,200表连接成功,404表失败 |
text | HTTP响应内容的字符串形式,即,也是url对应的页面内容 |
encoding | HTTP响应内容的编码形式 |
content | HTTP响应内容的二进制形式 |
例1:
4、Response对象的方法:
方法 | 描述 |
json() | 如果HTTP响应内容包含json格式数据,该方法解析JSON数据 |
raise_for_status() | 如果不是200,该方法就会产生异常 |
5、网页获取
import requests def gethtml(url): try: r = requests.get(url,timeout = 30) r.raise_for_status() r.encoding = 'utf-8' return r.text except: return "" url = "http://www.baidu.com" print(gethtml(url))
结果如下: