阅读本文大约需要2分钟
本文旨在为没有爬虫基础的,偶尔想爬虫爬一下某个网站上的图片的初学者使用,如果你已经是对爬虫很熟悉了,下面依然有你感兴趣的东西。
我最近也才正儿八经学习了下爬虫,出于某种需要爬一下网上的照片,毕竟并不是专业的,如果你想深入学习,还需要细学。如果只想用一下爬一下网上某个网站的照片,那可以参考一下。
说起来,一个爬虫代码就3个步骤:
确定你想要爬的网站,输入进去;
解析一下一个有规律的带照片的网页,然后通过查找匹配找到图片的唯一网页地址,一般来说每一个图片都存在唯一的一个网站地址。这么说来,其实爬虫就是给一个图片的地址,下载下来即可。而爬虫的关键是如何自动化的解析有规律的海量图片,实现自动批量下载。
有了地址,剩下的就是把图下载下来了。
推广一下,爬虫爬取图片只是爬虫的一个应用,你还可以爬去其他数据,比如电影网站评语呀,各类网站数据呀,等等,凡是你可以看到的有规律的数据,都可以爬虫完成。
不多说,直接看代码吧,一个及其简单易懂的代码:
# -*- coding: utf-8 -*-
"""AI公众号:AInewworld"""
importos
importurllib.request
# 主网址
url ="http://www.59pic.com/mn/"
# 下面两个参数需要看一下要爬取的网页来修改
pic_id =1736#具体的图片序列id
numall =8#序列照片数量
name = str(pic_id) +"_"
#图片存储路径
path1 ="D://myself//python//docment//spy//pic//"+ name[:len(name)-1]
ifnotos.path.exists(path1):#判断一个目录是否存在os.makedirs(path1)#多层创建目录
i=2
whilei
一步步分析,首先找一个有图片的网站,也是随便搜到的,网站内容怎么样,谁看谁知道。
接着找到一组序列图,比如下图这样有8张图的序列图,这是第一张。注意这里也对应这代码中两个需要修改的数字。
在下一步,解析,点击这个网页右击,鼠标审查元素,如图:
下面的问题变成如何把这个图片的网站给解析出来。这里我们就要找关键位置了,我们看一下上面这个图,找到图片对应的位置,那么怎么把这个网址分割出来呢?代码里面这个函数得到的是一个网页字符串,我们找到唯一表示的,使用一个find函数就找到了,比较简单。
最后我们使用下载函数直接下载到本地即可,第一个参数为图片地址,第二个参数为本地存储地址。注意,这个函数其实是非常弱的,碰到那些反爬虫的网站,就gg了,我今天就遇到过,不过已经找到解决办法了,文末一并分享出来。
注意一点的是,上述代码式运行在python3以上的版本中的,python2的版本,需要自己去修改了。
是不是足够简单,简单也很脆弱,经常还会碰到下载超时返回错误的情况,这个也可以解决。
其实你还可以写个函数,将每一组照片的数量给解析出来,这样你只要一个参数了。
你还可以遍历一些图片序列,这样可以自动下载n多序列的组图了。
好了就讲到这吧,没试过的去试试吧。
如果看了上述还不明白的,还有个简短的半小时视频教程。
领取专属 10元无门槛券
私享最新 技术干货