#!/usr/bin/python
# _*_ coding: utf-8 _*_
'''
Created on 2018年8月22日
'''
# 导入包
import urllib
import urllib2
import re
import os
# 获取网站地址
req = urllib2.Request('https://image.baidu.com/search/index?tn=baiduimage&ct=201326592&lm=-1&cl=2&ie=gb18030&word=%C1%F5%CA%AB%CA%AB&fr=ala&ala=1&alatpl=star&pos=0&hs=2&xthttps=111111')
# 打开网站,并赋给对象f
f = urllib2.urlopen(req)
# 设置本地下载路径,注意后面的\\,第一个是转义字符,第二个是路径的\字符
localDir = 'E:\download\\'
# 定义空列表
urlList = []
# 遍历网站
# 判断本地路径是否存在,如果不存在就创建
if not os.path.exists(localDir):
os.makedirs(localDir)
for eachLine in f:
# 每一行的头和尾去掉空格
line = eachLine.strip()
# 匹配含有jpg的行,(.*) 解释: .任意字符不包含换行,*0-N次
if re.match('.*jpg.*', line):
# print(line) # 测试使用,可以注释,目的是打印匹配的字符串
# 以双引号作为分隔符,将每一行按照双引号进行拆分
wordList = line.split('\"')
for word in wordList:
# 拆之后,匹配https开头和jpg结尾的字符串
if re.match('https:/.*.jpg', word):
# 将上一步匹配的字符串追加到定义的空列表urlList中
urlList.append(word)
# 将列表去重,因为后续发现有重复现象
urlList = list(set(urlList)) #去重
# 遍历去重后的列表
for everyFile in urlList:
everyURL = everyFile
# 将url按照 / 切分,然后获取最后一个字符串作为照片名称
localFileName = everyURL.split('/')[-1]
# print(localFileName) # 测试使用,可以注释,目的是打印匹配的字符串
# 拼接字符串,定义本地照片的绝对路径:目录路径+照片名字
localFile = localDir + localFileName
# print (localFile) # 测试使用,可以注释,目的是打印匹配的字符串
# try语法,利用urllib.urlretrieve方法,将照片下载至本地
try:
urllib.urlretrieve(everyURL, localFile) #按照url进行下载,并以其文件名存储到本地目录
except Exception,e:
continue
网页题目:python批量下载照片
转载来源:
http://cdxtjz.cn/article/gijjsh.html