当前位置: 首页 > web >正文

Python实例题:Python快速获取斗图表情

目录

Python实例题

题目

python-get-meme-imagesPython 快速获取斗图表情脚本

代码解释

get_meme_images 函数:

download_images 函数:

主程序:

运行思路

注意事项

Python实例题

题目

Python快速获取斗图表情

python-get-meme-imagesPython 快速获取斗图表情脚本

import requests
import os
from urllib.parse import quotedef get_meme_images(keyword, num_images=10):base_url = f"https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord={quote(keyword)}&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&hd=&latest=&copyright=&word={quote(keyword)}&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&force=&pn=0&rn={num_images}"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'}try:response = requests.get(base_url, headers=headers)response.raise_for_status()data = response.json()image_urls = []for item in data.get('data', []):if 'thumbURL' in item:image_urls.append(item['thumbURL'])return image_urlsexcept requests.RequestException as e:print(f"请求出错: {e}")return []except ValueError:print("解析 JSON 数据出错。")return []def download_images(image_urls, save_dir):if not os.path.exists(save_dir):os.makedirs(save_dir)for i, url in enumerate(image_urls):try:response = requests.get(url)response.raise_for_status()file_path = os.path.join(save_dir, f"meme_{i}.jpg")with open(file_path, 'wb') as f:f.write(response.content)print(f"图片 {file_path} 下载成功。")except requests.RequestException as e:print(f"下载图片 {url} 时出错: {e}")if __name__ == "__main__":keyword = "斗图表情"num_images = 10save_dir = "meme_images"image_urls = get_meme_images(keyword, num_images)if image_urls:download_images(image_urls, save_dir)

代码解释

  • get_meme_images 函数

    • 构建百度图片搜索的 URL,使用quote函数对关键词进行编码,确保可以处理包含特殊字符的关键词。
    • 发送 HTTP 请求获取 JSON 数据,解析 JSON 数据提取图片的thumbURL
    • 处理请求异常和 JSON 解析异常,确保程序的健壮性。
  • download_images 函数

    • 检查保存图片的目录是否存在,若不存在则创建。
    • 遍历图片链接列表,发送请求下载图片并保存到本地。
    • 处理下载过程中的请求异常。
  • 主程序

    • 定义要搜索的关键词、要获取的图片数量和保存图片的目录。
    • 调用get_meme_images函数获取图片链接。
    • 若获取到图片链接,调用download_images函数下载图片。

运行思路

  • 安装依赖库:确保已经安装了requests库,若未安装,可使用以下命令进行安装:
pip install requests
  • 运行脚本:将上述代码保存为get_meme_images.py文件,在终端中运行:
python get_meme_images.py
  • 查看结果:程序会在当前目录下创建一个名为meme_images的文件夹,里面包含下载的斗图表情图片。

注意事项

  • 反爬机制:百度图片有反爬机制,可能会限制请求频率或返回验证码。可以通过设置请求间隔、使用代理 IP 等方式应对。
  • 合法性:确保你的爬取行为符合相关法律法规和百度的使用条款。
  • 图片质量:获取的是缩略图链接,图片质量可能不高,若需要高质量图片,可能需要进一步分析网页结构获取原图链接。
http://www.xdnf.cn/news/5064.html

相关文章:

  • 电机试验平台:实现性能评估与优化的关键工具
  • groovy @CompileStatic注解小记
  • 常见图像融合算法(图像泊松融合)
  • Qt开发经验 --- 避坑指南(9)
  • CST仿真喇叭/波导相位中心
  • 面对渠道竞争,品牌该如何应对?
  • Base64 编码原理详细解析
  • OpenManus中使用命令行运行py脚本报错
  • NoMachine 将虚拟显示器改为物理显示器
  • 树初步 #1(插排串联 - 辽宁省2024CCPC)
  • 【C】初阶数据结构15 -- 计数排序与稳定性分析
  • 报表控件stimulsoft教程:使用 JoinType 关系参数创建仪表盘
  • 番茄爽文小说,叙事技巧情感设计有哪些?
  • 实现线程的4种方法
  • 深入理解主从数据库架构与主从复制
  • AD 排针类元件模型的创建
  • 影刀RPA开发-智能录制
  • MySQL 第三讲---基础篇 库与表操作(下)
  • 华为防火墙双机热备(负载分担)
  • U9C-SQL-调出单视图
  • 小厂golang面经
  • Delphi12安装Android开发的配置
  • 盖雅工场人效飞轮数字化套件入选36氪AI原生应用创新案例
  • Path to Integer_ABC402分析与解答
  • 理解 Envoy 的架构
  • MIMO 检测(1)--接收机模型
  • leetcode0310. 最小高度树-medium
  • 高频数据结构面试题总结
  • [AI Tools] Dify 平台插件开发全解:如何构建 Tools 插件并解析输出逻辑
  • RT-Thread 深入系列 Part 2:RT-Thread 内核核心机制深度剖析