python图片下载器(百度图片)
程序员文章站
2022-05-26 22:29:03
...
之前觉得爬虫很好玩,去网页上面抓取数据感觉很神奇。初次接触在导入包就出现了问题,requests没有导入到程序中,在cmd命令里面输入pip install requests,下载到一半的时候就报错了,辗转反侧,从火狐到谷歌,终于在软件中安装了requests这个包。
代码如下:
# -*- encoding: utf-8 -*-
"""
@Function : 图片字段下载器(百度图片.jpg)
@Author : 王育红
@Time : 2020/08/17
"""
import requests
import re
import os
# 定义一个变量用来保存图片的张数
n = 1
#定义下载图片的方法
def downloadPic(url):
global n
result = requests.get(url).text
pic_url = re.findall('"objURL":"(.*?)",',result,re.S)
for each in pic_url:
print("正在下载第" + str(n) + "张图片,图片地址:" + each)
try:
pic = requests.get(each,timeout=5) # 可能有些图片存在网址打不开的情况
except Exception: # 出现异常直接跳过
print("【错误】当前图片无法下载")
continue # 跳过本次循环
# 定义变量保存图片的路径
new = 'E:/Python/Crawler/百度图片下载器/' + words + "/" + "第"+str(n) + "张" +words + ".jpg"
#这里有两种方法
#(一)
# fp = open(string,'wb')
# fp.write(pic.content)
#fp.close()
#(二)
with open(new,'wb') as f:
f.write(pic.content)
f.close()
n += 1
if __name__ == '__main__':# 主程序
words= input("请输入您想要下载的图片:")
# 先根据搜索的关键字判断存放该类别的文件夹是否存在,不存在这新建
road = "E:/Python/Crawler/百度图片下载器/" + words
if not os.path.exists(road):
os.mkdir(road)
# 根据输入的内容构建url列表推导式
urls = [
'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=' + words+ '&ct=201326592&v=flip&pn={}'.format(
str(i)) for i in range(0, 400, 20)
]
for url in urls:
downloadPic(url)
print("下载完成!")
- 根据自己需要的图片进行搜索
查看运行结果:
接着就等待下载了,如果网络有点慢可能要稍微等得久一点,有点儿耐心哈~ 然后就可以在所存的路径里面查看啦。