- #!/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
来源: http://www.bubuko.com/infodetail-2738650.html