MOOC《Python网络爬虫与信息提取》学习过程笔记【requests库】第一周1-3

一得到百度网页的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))

红色部分就是爬去网页的通用代码框架