视频教程下载链接:​​http://pan.baidu.com/s/1nv37dbV​​​ 配套教程下载:​​​http://pan.baidu.com/s/1qYdI6q4​​ 这节课将会非常有趣,因为我们要编写一个小程序实来现从网上下载图片,首先我们包含random模块,我们将使用这个模块的随机生成数字的功能,来为下载的图片命名,然后,还要包含urllib.request这个模块进来,它能够帮我们从网上下载一些各种数据包:

import  random
import urllib.request

这里顺便告诉大家一个经验,如果你想要实现一个功能,你想避免重复编写代码,但是不知道有没有合适的模块可以包含,这时候,你可以打开File->Settings: 图 7‑1 然后,切换到在左边的Project Interpreter选项卡: 图 7‑2 这个功能可以让你从互联网上下载你需要的模块,假如,现在我想加入一个线性代数的模块,首先点击右边的+号,它会弹出一个搜索对话框: 图 7‑3 这里因为我要搜索线性代数相关的模块,我们知道线性的英文是:linear,所以搜索: 图 7‑4 你看,它会弹出很多模块供我们下载,比如说,这里我们下载linear_Counter,右边是关于这个模块的解释。点击左下角的Install Package即可完成安装: 图 7‑5 安装成功后,关闭对话框即可,然后linearCounter就显示在已下载列表汇总了。当你觉得有些模块不需要,可以点击右边的‘-’号进行卸载: 图 7‑6 这是一个小小的经验供大家参考。 那么现在,回到我们的课程中,这里我们定义一个下载函数,唯一的参数就是网址:

def download_web_image(url):

接着,我们像上节课那样,产生一个1到1000的随机的数字,

name = random.randrange(1, 1000)

所以呢,我们下载好的图片的名称可能是288.jpg,或者999.jpg,这可能不是最好的方式,但供咱们讲解课程足够了。接着,我们要为文件的名称加上一个后缀名,所以定义一个full_name变量,将它加上.jpg即可。

full_name = str(name) + '.jpg'

有了这个完整的名称之后呢,还需要做一件事,就是:下载图片,这时候,就需要从urllib这个模块中调用一个函数:urlretrieve,它有两个参数,第一个参数是图片所在互联网上的链接,就是前面有http的那个东西。这里我们就把这个函数的参数传递进去,第二个参数是图片的名称,就是我们刚刚定义好的full_name:

urllib.request.urlretrieve(url, full_name)

现在我们就来调用这个函数下载我们自己官网的图片,比如说,这里打开​​​​,找到一篇有图片的文章,然后把它的网址拷贝下来,接着,调用download_web_image这个函数,将网址作为参数传递进去,这里需要的是一个字符串,所以需要加上引号:


download_web_image('http://www.oxox.work/web/wp-content/uploads/2016/07/chrome-privacy.png')

注意从网上下载的这个图片,将会被默认下载到与当前Python文件同一个目录下。运行: 图 7‑7 你看,成功下载,这就是利用已有的模块完成从网上下载图片的功能,掌握了这个功能,就相当于掌握了网络爬虫的基础。 更多精彩内容尽在视频中!