一得到百度网页的html源代码:
>>> import requests
>>> r=requests.get("http://www.baidu.com")
>>> r.status_code #查看状态码,为200表示访问成功,其他表示访问失败
200
>>> r.encoding='utf-8' #更改编码为utf-8编码
>>> r.text #打印网页内容
>>> r.headers
二requests库的主要方法:
requests.request() 构造一个请求,支撑以下各方法的基础方法
requests.get() 获取HTML网页的主要方法,对应于HTTP的GET
requests.head() 获取HTML网页头信息的方法,对应于HTTP的HEAD
requests.post() 向HTML网页提交POST请求的方法,对应于HTTP的POST
requests.put() 向HTML想也提交PUT请求的方法,对应于HTTP的PUT
requests.patch() 向HTML网页提交局部修改请求,对应于HTTP的PATCH
requests.delete() 向HTML页面提交删除请求,对应于HTTP的DELETE
1requests.get()
r=requests.get(“网页地址”) #get("网页地址")构造一个向服务器请求资源的Request对象
#r是一个包含服务器资源的Response对象
三Response对象的常用属性(这里是r):
r.status_code HTTP请求返回的状态,200表示链接成功,404表示失败...只要不是200都是失败的
r.text HTTP响应内容的字符串形式,即url内容的页面内容
r.encoding 从HTTP header中猜测的响应内容编码方式
r.apparent_encoding 从内容中分析出的响应内容编码方式(备选编码方式)
r.content HTTP响应内容的二进制形式
>>> import requests
>>> r=requests.get("http://www.baidu.com")
>>> r.status_code
200
>>> r.text
#乱码
>>> r.encoding #从html代码的header查找charste关键字得到的编码方式,如果不存在charset则认为编码为ISO-8859-1
'ISO-8859-1'
>>> r.apparent_encoding #分析后得到的网页的正确编码方式
'utf-8'
>>> r.encoding='utf-8'
>>> r.text #打印出了我们想要的格式
四爬取网页的通用代码框架
1.什么是爬取网页的通用代码框架?
就是一组代码,可以准确可靠的爬去网页
Requests库的异常:
r.raise_for_status() 如果不是200,产生异常requests.HTTPError
>>> import requests
>>> def getHTMLText(url):
try:
r=requests.get(url,timeout=30)
r.raise_for_status() #如果状态不是200,引发HTTPError异常
r.encoding=r.apparent_encoding
return r.text
except:
return "产生异常"
>>> if __name__=="__main__":
url="http://www.baidu.com"
print(getHTMLText(url))
红色部分就是爬去网页的通用代码框架