🎯 阅读时间:10分钟 👨💻 难度级别:新手友好 🎁 内含福利:免费爬虫软件 😱 当我发现这个秘密的时候,我惊呆了!
还在为找图片发愁吗?
还在手动右键保存图片吗?
还在为下载的图片质量差而烦恼吗?
想象一下这个场景: 你是一个设计师,需要1000张猫咪图片做素材 你是一个追星族,想要收集爱豆的所有美照 你是一个摄影学习者,需要大量参考作品… 手动下载?
别开玩笑了!
让我们的爬虫机器人来帮你搞定!
🤖 💝 重磅福利:一键下载神器 我开发了一个很有意思的图片下载器, 完全免费 ,无需编程基础!
🌟 神器功能: 支持任意关键词搜索 自动过滤低质量图片 支持自定义图片尺寸 支持多种图片格式(JPG/PNG/JPEG) 智能文件命名系统 进度实时显示 🤔 这是怎么做到的?
揭秘爬虫原理!
其实爬虫就像是一个自动化的"复制-粘贴"工具。
当你在百度图片搜索时,页面上显示的每张图片都有一个独特的网址。
爬虫程序就是自动访问这些网址,然后将图片保存到你的电脑上。
🔍 核心原理解析:
import os
import re
import requests
import urllib.parse
from PIL import Image
from io import BytesIO
import time
import json
class BaiduImageCrawler:
def __init__(self):
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
# 百度图片搜索API
self.search_url = 'https://image.baidu.com/search/acjson'
def create_folder(self, keyword):
"""创建保存图片的文件夹"""
folder_path = f'./images/{keyword}'
if not os.path.exists(folder_path):
os.makedirs(folder_path)
return folder_path
def get_images_url(self, keyword, page_num=1):
"""获取图片URL列表"""
urls = []
pn = 30 # 每页显示30张图片
for page in range(page_num):
params = {
'tn': 'resultjson_com',
'logid': '7603311155072595725',
'ipn': 'rj',
'ct': '201326592',
'fp': 'result',
'queryWord': keyword,
'cl': '2',
'lm': '-1',
'ie': 'utf-8',
'oe': 'utf-8',
'adpicid': '',
'st': '-1',
'z': '',
'ic': '',
'hd': '',
'latest': '',
'copyright': '',
'word': keyword,
's': '',
'se': '',
'tab': '',
'width': '',
'height': '',
'face': '0',
'istype': '2',
'qc': '',
'nc': '1',
'fr': '',
'expermode': '',
'force': '',
'pn': page * pn,
'rn': '30',
'gsm': '1e',
}
try:
response = requests.get(self.search_url, headers=self.headers, params=params)
response.raise_for_status()
data = response.json()
for item in data.get('data', []):
if item and 'thumbURL' in item:
urls.append({
'url': item['thumbURL'],
'width': item.get('width', 0),
'height': item.get('height', 0)
})
except Exception as e:
print(f"获取图片URL时出错: {e}")
continue
return urls
def download_image(self, url, folder_path, index, min_width=300, min_height=300):
"""下载并保存图片,过滤小尺寸图片"""
try:
response = requests.get(url['url'], headers=self.headers)
response.raise_for_status()
# 读取图片
img = Image.open(BytesIO(response.content))
width, height = img.size
# 检查图片尺寸
if width < min_width or height < min_height:
print(f"图片尺寸太小 ({width}x{height}), 已跳过")
return False
# 保存图片
file_extension = img.format.lower() if img.format else 'jpg'
file_path = os.path.join(folder_path, f'{index}.{file_extension}')
img.save(file_path)
print(f"成功下载图片: {file_path}")
return True
except Exception as e:
print(f"下载图片时出错: {e}")
return False
def crawl_images(self, keyword, max_images=100, min_width=300, min_height=300):
"""主要爬取函数"""
print(f"开始爬取关键词 '{keyword}' 的图片...")
# 创建保存文件夹
folder_path = self.create_folder(keyword)
# 计算需要爬取的页数
pages_needed = (max_images + 29) // 30
# 获取图片URL列表
image_urls = self.get_images_url(keyword, pages_needed)
# 下载图片
success_count = 0
index = 1
for url in image_urls:
if success_count >= max_images:
break
if self.download_image(url, folder_path, index, min_width, min_height):
success_count += 1
index += 1
# 添加延时,避免请求过快
time.sleep(0.5)
print(f"\n爬取完成! 成功下载 {success_count} 张图片")
print(f"图片保存在: {os.path.abspath(folder_path)}")
def main():
# 创建爬虫实例
crawler = BaiduImageCrawler()
# 设置爬取参数
keyword = input("请输入要搜索的关键词: ")
max_images = int(input("请输入要下载的图片数量: "))
min_width = int(input("请输入图片最小宽度 (像素): "))
min_height = int(input("请输入图片最小高度 (像素): "))
# 开始爬取
crawler.crawl_images(
keyword=keyword,
max_images=max_images,
min_width=min_width,
min_height=min_height
)
if __name__ == '__main__':
main()
就是这么简单!
但是完整版本的爬虫还包含了: 智能过滤系统 自动重命名 异常处理 进度显示 …等等高级功能!
📱 软件使用教程 第一步:下载解压缩 直接解压即可使用,无需安装!
第二步:设置参数 输入关键词(如:“猫咪”、"风景"等) 设置需要下载的图片数量 设置图片最小尺寸要求 选择保存格式 设置保存路径
第三步:开始下载 点击"开始下载"按钮,然后喝杯咖啡,等待完成!
☕
爬虫结果展示
🎯 使用小贴士 建议每次下载不要超过200张 关键词越精确,获取的图片越准确 可以使用前缀功能更好地管理图片 建议选择合适的尺寸过滤,避免下载到缩略图 💡 常见问题解答 Q: 下载速度慢怎么办?
A: 建议检查网络连接,或减少单次下载数量 Q: 为什么有些图片下载失败?
A: 可能是原图已失效或不满足尺寸要求 🌈 写在最后 如果这篇文章对你有帮助: 点个赞👍支持一下吧!
在评论区留下你想搜索的关键词 关注我,获取更多实用工具!
特别提醒: 请合理使用爬虫 注意版权问题 不要过度采集 🎁 福利时间 后台回复"爬虫",获取软件下载地址!
点赞+收藏+关注,不迷路!
#技术分享 #Python爬虫 #实用工具 #编程技术 #图片下载
