python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战

python爬虫的HTML下载器主要有两种模块,一种是requests模块,另一种是urllib模块。笔者已经发表了一篇关于requests模块的教程了,需要学习的朋友请看下面链接:

python爬虫基础入门教程,人性化的python requests最全总结

对于requests模块笔者就不再介绍了,今天来讲讲urllib模块的具体用法。大家都知道要爬取网页就需要有一个专门爬取并且把网页下载下来的模块,所以学习urllib模块显得必不可缺。今天笔者讲的urllib模块的知识,涵盖了urllib模块比较全面和常用的知识模块,如urllib常用的语法、请求头、超时设置、HTTP请求中的get请求和post请求、异常处理等。

下面开始讲解urllib的内容:私信小编007即可获取数十套PDF文档!

1.在没有添加任何其他参数的情况下(即一般情况):

实例代码和结果截图如下图所示:

《python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战》 python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战

2.urllib的常用语法

实例代码截图如下:

《python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战》 python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战

结果截图如下:

《python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战》 python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战

上面的2-1返回的内容是当前的网页的相关参数环境来的,而2-4和2-5这个在uURL将中文进行编码和解码处理也是非常常用和重要的语法来的,在下面的HTTP请求的get用法中将会详细讲解。

3. 请求头

为什么要设置请求头呢?因为网站为了防止别人恶意爬取网址的信息而设置的反爬虫技术

例如以下例子在没有设置头文件时去爬取https://www.whatismyip.com/网址会遭到拒接

例如以下代码实例代码以及运行的结果:

《python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战》 python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战

由上面可知,网站禁止我们的访问,网址https://www.whatismyip.com/是专门用来测试头文件的。这里的异常处理方法笔者就不再重复讲解了,需要去学习的朋友,请到我的这篇python异常处理的文章去学习,链接如下:

python错误和异常处理的最全总结,助你快速掌握最常用的方法

所以学习头文件的设置也是很有必要的。

3-1 设置请求头的第一种方法

实例代码和结果截图如下:

《python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战》 python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战

3-2 设置请求头的第二种方法

实例代码和结果截图如下:

《python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战》 python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战

4.超时设置

为什么要设置超时的程序呢?假如你的爬虫访问网站有好一段时间了,还是没有响应,此时你不知道这个网站到底能不能访问。为了防止这种不必要的等待,我们对程序进行了超时设置,一旦访问时间超过设定的时间就会报错,这样一来我们就知道此时的访问状况了。超时时间是自己自定义的,如果目标网址的服务器负载太大,这时我们就相应的把超时时间设置长一点。

实例代码和结果截图如下:

《python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战》 python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战

5.HTTP请求

网站的HTTP请求有get请求和post请求,get请求是一般情况下的,而post请求是带有网页的表单信息的,比如一些用户名、密码之类的表单参数。

5-1 get请求

《python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战》 python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战
《python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战》 python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战
《python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战》 python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战

通过以上的规律,我们可以总结出get请求的一个规律:https://www.baidu.com/s?wd=后面总是跟着我们要搜索的关键字,因此得出以下格式:

《python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战》 python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战

实例代码如下:

《python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战》 python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战

结果截图如下:

《python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战》 python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战

5-2 post请求

(提示:这里的表单的用户名和密码是使用别人公开的来模拟登陆的)

实例代码如下:

《python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战》 python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战

结果截图如下:

《python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战》 python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战

上面截图中的<form>…….</form>之间就是表单信息来的,例如name、passwd。

6.异常处理

处理异常有使用处理方法:URLError父类 和 HTTPError子类

这里只讲一种万能识别异常的方法。

原理:使用hasattr()函数可以用来判断是否有这些属性,如果有e.code就输出e.code;如果有e.reason就输出e.reason。

功能:不管是何种原因引发的URL异常,都能通过URLError进行处理:

实例代码如下:

《python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战》 python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战

结果截图如下:

《python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战》 python爬虫|urllib模块知识大总结,助你快速掌握并且进入实战

以上关于urllib模块的内容是比较全面的一份总结来的,涵盖了urllib非常常用的知识模块,学会了今天的内容,爬取网页和下载网页的内容是可以的了。(提示:不要只看着代码示例,认为还可以就不去动手实践,这样的学习方式是不提倡的,牢记:只有在实践中才能产生奇迹,多说无益)

<pre style=”-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;”>好的,今天的内容到此就结束了。喜欢的朋友关注一下喔,关注【python是一个时代】,更多精彩内容等着你,也可以转发给需要学习的朋友看看,希望今天的内容对读者有所帮助。
</pre>

纸上得来终觉浅,绝知此事要躬行

    原文作者:浪里小白龙q
    原文地址: https://www.jianshu.com/p/3611c04016f2
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞