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

根据关键词query获取google_img(api方式)

文章目录

  • 说明
  • 代码
    • 第一部分:链接保存为Json
    • 第二部分:链接转换为img

说明

根据关键词query获取google_img

USERNAME = “xxx”
PASSWORD = “xxx”

官网申请。

代码

首先获取图片链接,保存为json之后下载。

第一部分:链接保存为Json

import requests
from pprint import pprint
import pandas as pd
from tqdm import tqdm
import json
import time
import osname_list = ["cat","dog"]
USERNAME = "xxx"
PASSWORD = "xxx"
for object_name in name_list:start_page = 1length = 1total_it = 70print(object_name)for i in tqdm(range(total_it),desc=object_name):payload = {'source': 'google_search','domain': 'nl','query': object_name,'parse': True,'context': [{'key': 'tbm', 'value': 'isch'},],'start_page' : start_page,'pages' : length    }end_page = start_page+length# Get response.response = requests.post('https://realtime.oxylabs.io/v1/queries',auth=(USERNAME, PASSWORD),json=payload,)if not os.path.exists(f'./google_data/{object_name}'):os.makedirs(f'./google_data/{object_name}')with open(f'./google_data/{object_name}/object_name_page_{start_page}_to_{end_page}.json', 'w') as f:json.dump(response.json(), f,indent=4)start_page = end_pagetime.sleep(3)

第二部分:链接转换为img

import json
from tqdm import tqdm
import requests
import os 
folder = './google_data'
subname_list = os.listdir(folder)
down_folder = './google_image/img_download'
os.makedirs(down_folder,exist_ok=True)
fail_list = []
for subname in subname_list:subfolder = os.path.join(folder,subname)path_lists = os.listdir(subfolder)cnt = 0img_down_list = []for mypath in path_lists:json_path = os.path.join(subfolder,mypath)with open(json_path) as file:data = json.load(file)try:img_urls = data['results'][0]['content']['results']['organic']for img_url_item in tqdm(img_urls,desc=f'{subname}-{mypath[-7:-5]}'): img_url = img_url_item['image']if img_url in img_down_list:continueelse:img_down_list.append(img_url)# try:#     # except:#     print('None')if 'http' in img_url:response = requests.get(img_url)if response.status_code == 200:os.makedirs(f'./{down_folder}/{subname}',exist_ok=True)with open(f'./{down_folder}/{subname}/{subname}_{cnt}.jpg', 'wb') as file:file.write(response.content)#print('图片下载成功')cnt += 1else:print('图片下载失败,状态码:', response.status_code)  #print(img_url)except:print(subname)fail_list.append(subname)#break#break
#print(fail_list)
unique_set = set(fail_list)
unique_list = list(unique_set)
print(unique_list)
filename = 'my_list.txt'# 打开文件进行写入
with open(filename, 'w') as file:for item in unique_list:# 写入每个元素,每个元素后面跟一个换行符file.write(item + '\n')
http://www.lryc.cn/news/396450.html

相关文章:

  • 西安明德理工学院师生莅临泰迪智能科技开展参观见习活动
  • 通用机器人里程碑!MIT提出策略组合框架PoCo,解决数据源异构难题,实现机器人多任务灵活执行
  • 基于Java中的SSM框架实现疫情冷链追溯系统项目【项目源码+论文说明】
  • 想在vue中预览doxc,excel,pdf文件? vue-office提供包支持
  • PostgreSQL16安装Mac(brew)
  • 【语音识别算法】深度学习语音识别算法与传统语音识别算法的区别、对比及联系
  • 图片批量重命名bat,一个脚本快速搞定图片批量重命名
  • 基于stm32单片机的智能手环的设计
  • 雷池WAF动态防护功能初体验
  • 持安科技CEO何艺荣获中国信通院2023-2024年度标准卓越贡献奖
  • gitee上传和下载idea项目的流程
  • 【Numpy】np.loadtxt 读取单行数据时报错。(零维数组)
  • Unity之OpenXR+XR Interaction Toolkit实现 Gaze眼部追踪
  • 自然语言处理(NLP)与大语言模型(LLM) 主要差异
  • 智能车载防窒息系统设计
  • 硅纪元视角 | 电信公司出招!AI机器人全面反击AI诈骗电话
  • Java爬虫翻页
  • .net6 当连接用户的shell断掉后,dotnet会自动关闭,达不到长期运行的效果。.NET 进程守护
  • 02 源码编译构建LAMP
  • 【Axure视频教程】页面滚动距离函数
  • 【Linux】:程序替换
  • 使用ResizeObserver观察DOM元素的尺寸变化
  • 前端使用Vue和Element实现可拖动弹框效果,且不影响底层元素操作(可拖拽的视频实时播放弹框,底层元素可以正常操作)
  • 文华财经多空K变色支撑压力画线趋势波段指标公式
  • tomcat9漏洞CVE-2024-23672
  • ChatGLM-6B入门
  • 项目实战--Spring Boot + GraphQL实现实时数据推送
  • ASPICE是汽车软件开发中的质量保证流程
  • Linux调试器-gdb使用以及Linux项目自动化构建工具-make/Makefile
  • Html5前端基本知识整理与回顾下篇