利用python爬网站上的图片并下载
打开链接https://www.douban.com/photos/album/1652407753/, 如图是一个相册.
如何下载网页上的图片, 如下图:
python 有很多强大的库, beautifulsoup 这个库解析html非常好用
安装BeautifulSoup
sudo pip install BeautifulSoup
如果出现-bash: pip: command not found,先安装 pip
sudo easy_install pip
网页右键查看源码, CMD+F 查找这个图片所在位置
图片链接在div标签下的img标签里,现在需要做的就是把这种类型的div从所有html中分离出来,但是这个div标签有个属性叫做class,属性的值是class=”photo_wrap”。拿到这个div集合,遍历里面的img标签,得到图片地址,再下载到本地。代码如下:
#!/usr/bin/python
#-*- coding: utf-8 -*-
#encoding=utf-8
import urllib2
import urllib
import os
from BeautifulSoup import BeautifulSoup
def downLoadAllImage():
html = urllib2.urlopen('https://www.douban.com/photos/album/1652407753/').read()
# 解析html
soup = BeautifulSoup(html)
# 从html里找到所有class 为 photo_wrap 的div
divResult = soup.findAll('div',attrs={"class":"photo_wrap"})
x = 0
for div in divResult:
# 得到所有的img标签
imageArray = div.findAll('img')
for image in imageArray:
# 拿到img标签的链接
link = image.get('src')
# 拼接路径
filePath = '/Users/kangbing/Desktop/images/%s.jpg' % x
x += 1
print filePath
# 下载并保存到本地
urllib.urlretrieve(link,filePath)
if __name__ == '__main__':
downLoadAllImage()
注意代码格式,python代码结尾不用分号,但是对格式要求非常严格,少一个或者多一个Tap就报错。 终端运行 image.py 文件就开始自动下载图片了。(记得新建images存放图片的文件夹)