我是靠谱客的博主 满意丝袜,最近开发中收集的这篇文章主要介绍第三章 3.1 Urlib库,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

第三章 学习目标

在这里插入图片描述

3.1.1urllib库的概念

urllib库是Python编写爬虫程序操作URL的常用内置库。在不同的Python解释器版本下,使用方法也稍有不同,本书采用Python3.x来讲解urllib库,具体版本是Python 3.6.1。 需要说明的是,在Python 2.x中urllib库包含urllib2和urllib两个版本,而在Python 3.x中urllib2合并到了urllib中。在此总结了一些urllib模块在Python2.x和Python3.x中使用的变动,方便大家快速掌握该库的用法,具体如下所示:

在这里插入图片描述

3.1.2 urllib库的使用

3.1.1节对urllib库作了简单的介绍,接下来讲解如何使用urllib库快速爬取一个网页。具体步骤如下:
导入urllib.reques模块。
使用urllib.request.urlopen()方法打开并爬取一个网页。
使用response.read()方法读取网页内容,并以utf-8格式进行解码。
具体示例代码如下:在这里插入图片描述
上述示例中使用到了urlopen方法,该方法有3个常用的参数,具体示例如下: 在这里插入图片描述
其中,url表示需要打开的网址;data表示访问网址时需要传送的数据,一般在使用POST请求时使用;timeout是设置网站的访问超时时间。
response是爬取到的网页对象,若想读取该网页内容,可以使用response.read()方法,并使用utf-8解码即可。如果不使用read()而直接对response解码,则上述示例返回结果如下:在这里插入图片描述
下面演示使用urllib库中的POST方法获取网页内容。这里使用“http://httpbin.org/
”网站演示,具体示例代码如下:在这里插入图片描述
**注意使用该网站的POST方法时需要在网址后面加上“/post”,**如上述代码所示。上面代码中客户端对网站服务器发送了请求数据{‘word’: ‘hello’},并使用urllib.parse库中bytes()方法将请求数据进行转换后,放入urllib.request.urlopen()方法的data参数中,这样就完成了一次POST请求。在这里插入图片描述
运行该程序,结果如图所示。在这里插入图片描述
此时可以看到客户端通过POST请求向网站服务器传递了表单数据“word”:“hello”,程序也返回了相应的结果。

通过上面的学习,相信大家已经可以使用urllib库对网页进行简单爬取,如果爬取的网页结果想要保存到本地,可通过如下代码实现:
1.在这里插入图片描述
2.在这里插入图片描述

代码中首先通过open()函数以wb(二进制写入)的方式打开文件,打开后再将其赋值给变量filehandle,然后再用write()方法将爬取的data数据写入打开的文件中,写入完成后使用close()方法关闭该文件,使其不能再进行读写操作,程序到此结束。

除此方法外,还可以使用urllib.request中的urlretrieve()方法直接将对应信息写入本地文件,具体代码如下所示:在这里插入图片描述
urllib库中还有一些常用方法,如例所示。在这里插入图片描述在这里插入图片描述
在浏览网页时,如果此网页长时间没有响应,系统就会提示该网页超时无法打开。在爬取网页时正确设置timeout的值,可以避免超时异常。其设置格式代码如下:在这里插入图片描述
比如,有的网站响应快,若以3秒作为判断是否超时的标准,timeout值就是3,有的网站响应缓慢,可以设置timeout值为10秒。如例所示。在这里插入图片描述

在这里插入图片描述

最后

以上就是满意丝袜为你收集整理的第三章 3.1 Urlib库的全部内容,希望文章能够帮你解决第三章 3.1 Urlib库所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(97)

评论列表共有 0 条评论

立即
投稿
返回
顶部