2.零基础系统学习Python爬虫之爬取网页的通用代码框架

在这里插入图片描述

理解Resquests库的异常

在我们进行网络爬虫时常会出现错误,比如requests.ConnectionError;requests.HTTPError等,下面对Resquests库的异常做个总结:

异常 说明
request.ConnectionError 网络连接异常,如DNS查询失败、拒绝连接等
requests.HTTPError HTTP错误异常
requests.URLRequierd URL确实异常
requests.TooManyRedirects 超出最大定向次数,产生定向异常
requests.ConnectTimeout 连接远程服务器超时异常
requests.Timeout 请求URL超时,产生超时异常

理解了异常过后我们就可以讲解下一个异常判断的方法,即

异常 说明
r.raise_for_status() 如果不是200,产生异常request.ConnectionError

可进行判断,常用,如果是200,则返回200,如果不是200则返回错误原因

爬取网页的通用代码框架

在进行requests错误判断时常用try except 的方法进行判断,历程如下:

impotr requests

def get_text(url):
	try:
		r = requests.get(url,timeout = 30)
		r.raise_for_status()#如果状态不是200引发HTTPError异常
		r.enconding = r.apparent_enconding
		return r.text
	excep:
		return "产生异常"
if __name__ == "__main__":
	url = "http://www.baidu.com"
	print(get_text(url))

get_text(url)函数内的语句即为代码框架即:

def get_text(url):
	try:
		r = resquests.get(url,timeout = 30)
		r.raise_for_status()#如果状态不是200引发HTTPError异常
		r.enconding = r.apparent_enconding
		return r.text
	excep:
		return "产生异常"

通用代码框架讲解

代码工作过程讲解:
首先进行requests.get(url)进而调用r.raise_for_status()的方法来判断返回的状态是不是200,否则就会引发一个HTTPError异常。
第三行代码用r.apparent_enconding得到的编码方式赋值给r.enconding 来确保我们的解码方式是正确的,如果全部正确则返回r.text
如果网络连接出现错误就会通过try except来return一个异常信息。

这样一个通用爬虫框架可有效处理我们在处理或爬取网页时的错误。

**作用:**为了使你的爬取过程变得更加稳定可靠,这就是通用代码框架的作用。

以上即是本文的全部内容,如果你觉得本文对你的学习有帮助,你可以点击关注进行持续学习,我的爬虫的博客也会进行持续的更新,谢谢大家!
提示学习来源:北京理工大学慕课

在这里插入图片描述

发布了40 篇原创文章 · 获赞 41 · 访问量 5932

猜你喜欢

转载自blog.csdn.net/qq_45172832/article/details/104229788