我们在浏览器中输入 url 就可以打开一个网页,实际上是我们在自己计算机上的浏览器向这个 url(标志了目标机器和目录)发送了请求信息,然后对方服务器给我们返回信息,我们在浏览器上就可以显示这些信息了,这就是请求,回应,显示整个过程。
urllib 是 Python 解释器中内置的非常方面,好用的网络库,它可以支持多种网络协议进行网络通信。
我们可以通过 urllib 包里面的 request 模块的 urlopen 函数,传入一个 URL,该函数默认采用的协议是 HTTP 协议,我们的浏览器访问网站的过程就是用 HTTP 协议网站服务器通信的过程。当然你也可以把 HTTP 换做 FTP,FILE,HTTPS 等等,只是代表了一种访问控制协议,urlopen 有好多默认参数,我们在本节课介绍一下常用的几个参数。
我们给 Python 内置的 urllib 包里的 request 模块的 urlopen 函数出入一个
url,就可以模拟浏览器访问这个网页,下面我们爬取 老鸟python
的首页。
from urllib import request response = request.urlopen("http://47.100.38.27/") print(response.read()) # 打印
urlopen 还有一个默认参数 timeout,这个参数可以设置访问网站的超时时间。当然我们要确保网站的 url 存在, 如果不存在,超时时间不起作用,则会直接抛出异常;如果访问的 url 存在的话,假如在设置的超时时间内没有打开,则会一直会等到超时时间过去,报异常; 如果访问的 url 存在,并且在超时时间内打开,则正常。
from urllib import request response = request.urlopen("http://47.100.38.27/", timeout=3) # 存在,一般瞬间就打开 response = request.urlopen("http://www.google.com", timeout=3) # 存在,但一般人打不开的 url response = request.urlopen("http://dajiahaowoxizhazhahui.com", timeout=3) # 一个不存在的 url
urllib 还有其它更多的模块和函数库,我们在爬虫教程中继续学习,本节课就不在赘述。
了解会使用 urllib 访问网站。
查下 urllib 的其它模块和使用方法。
用 urllib 爬取图片,图片网址为:
http://47.100.38.27/static/img/python-lession/12/12-1-1.png
,并存储在磁盘上。
了解下网络库为以后学习爬虫打基础