多线程爬取百度图片

'''
爬取网页图片'''
import urllib.parse
import requests
import os
import time
from concurrent.futures import ThreadPoolExecutorheaders = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
}
INPUT = input("要查询的图片")# 创建文件夹
if not os.path.exists(f"./图片/{INPUT}"):os.mkdir(f"./图片/{INPUT}")print("已创建文件夹")PAGES = int(input("要爬取的页数(1页30张)"))
INPUT_str = urllib.parse.quote(INPUT)# PAGE 是一个接口存放30张
start_time = time.time()
urls = []
for i in range(1,PAGES+1):url = f"https://image.baidu.com/search/acjson?tn=resultjson_com&logid=5179920884740494226&ipn=rj&ct=201326592&is=&fp=result&queryWord={INPUT_str}&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&hd=&latest=&copyright=&word={INPUT_str}&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&nojc=&pn={ i*30}&rn=30&gsm=1e&1635054081427= "urls.append(url)def Request(url):global picture_numresponse = requests.get(url=url,headers = headers)# print(response.status_code)  # 状态码datas = response.json()['data']# print(len(datas)) # 长度for data in datas:try:url_every = data['thumbURL']url_type = data['type']response = requests.get(url=url_every,headers = headers).content# 多线程去执行的时候,为了防止覆盖,所以用时间戳代表每一张图片with open(f"./图片/{INPUT}/{int(time.time()*1000000)}.{url_type}","wb") as w:w.write(response)except:pass
# 多线程爬取图片
with ThreadPoolExecutor(max_workers=len(urls)) as e:for url in urls:e.submit(Request,url)end_time = time.time()
print("用时:",round(end_time-start_time,2))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/25944.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM知识点

JVM是什么 JVM(Java Virtual Machine)是 Java 虚拟机,用于运行 Java 编译后的二进制字节码,最后生成机器指令。JVM 是 Java 能够跨平台的核心 JDK,JRE,JVM三者关系 三者的关系是:一层层的嵌套关…

第26讲:Ceph集群OSD扩缩容中Reblanceing数据重分布

文章目录 1.Reblanceing数据重分布的概念2.验证Reblanceing触发的过程3.Reblanceing细节4.临时关闭Reblanceing机制 1.Reblanceing数据重分布的概念 当集群中OSD进行扩缩容操作后,会触发一个Reblanceing数据重分布的机制,简单的理解就是将扩缩容前后OSD…

护理考试搜题软件哪个免费?分享九个搜题直接出答案的软件 #知识分享#微信

培养自己的阅读习惯,并不仅仅限于课外读物,还包括学术期刊、行业报告等,以不断提升自己的知识水平和思考能力。 1.彩虹搜题 这是一个公众号 是一款专门针对于大学生或者是成年自考等学生顺利完成证件考试的应用软件,这款软件涵…

CTF比赛分类

一、CTF定义 CTF(capture the flag):中文翻译“夺旗战”起初为西方传统体育运动,即两队人马互相前往对方基地夺取旗帜因其一攻一防的分配贴合黑客攻防形式,故此“CTF”现今一般代指网络安全竞赛。 二、CTF题型 WEB&a…

详细介绍 CNN 完成 CIFAR 图像分类任务

准备工作 这里用到的是: tensorflow-cpu 2.4 版本python 3.8 版本anaconda 自带的 jupyter notebook 本文大纲 加载、展示、处理 CIFAR 图像数据搭建 CNN 模型架构编译、训练模型测试模型 加载、展示、处理 CIFAR 图像数据 (1)这里国内…

一.iOS核心动画 - 关于图层与视图

引言 Core Animation听起来会让人误以为它只是用来做动画的,但是事实上它是从Layer Kit库演变而来的,其中做动画的功能只是Core Animation特性的一小部分。 Core Animation是一个复核引起,它的作用就是尽可能快地组合屏幕上不同的显示内容&…

Python | Leetcode Python题解之第143题重排链表

题目: 题解: class Solution:def reorderList(self, head: ListNode) -> None:if not head:returnmid self.middleNode(head)l1 headl2 mid.nextmid.next Nonel2 self.reverseList(l2)self.mergeList(l1, l2)def middleNode(self, head: ListNo…

18.2 HTTP服务器-处理函数、响应404错误

1. 处理函数 处理来自客户端的请求,并回之以特定的响应,这是处理函数的主要任务。在处理函数中,我们通常会完成如下工作: 验证请求路径 http.Request.URL.Pathhttp.NotFound(...) 当请求没有对应的处理函数时,返回4…

Vue3【十六】TS中的接口、泛型,自定义类型

Vue3【十六】TS中的接口、泛型&#xff0c;自定义类型 TS中的接口、泛型&#xff0c;自定义类型 案例截图 目录结构 代码 app.vue <template><div class"app"><h1>你好世界! 我是App根组件</h1><Person /></div> </templat…

docker部署mysql+nginx+redis

部署mysql 1、拉去镜像 docker search mysql docker pull mysql:5.7 2、运行镜像 docker run -p 3306:3306 --name mysql \ -v /home/mysql/log:/var/log/mysql \ -v /home/mysql/data:/var/lib/mysql \ -v /home/mysql/conf:/etc/mysql/conf.d \ -v /home/mysql/mysql-files…

OpenAI官方Prompt工程指南详解!再也不怕写不好Prompt了!

使用AI聊天、AI写作、还是AI绘图等过程中Prompt具有重要意义。 那么Prompt要怎么写效果才好&#xff1f;有没有标准化的模板可以直接用&#xff1f; 有&#xff0c;OpenAI官方发布了一份提示词工程指南&#xff0c;该指南分享了6大策略即可让AI输出更好的结果。至此&#xff…

树状数组介绍

树状数组&#xff08;Binary Indexed Tree&#xff0c;简称 BIT 或 Fenwick Tree&#xff09;是一种可以高效解决前缀和问题的数据结构。它能在对数时间复杂度内完成单点更新和查询前缀和的操作。树状数组通过一种巧妙的方式&#xff0c;将数组元素的值分布在不同的位置上&…

无线领夹麦克风哪个品牌性价比高?推荐领夹麦克风性价比最高品牌

当今的直播、短视频已经深深的融入到了我们的生活当中&#xff0c;很多小伙伴会通过拍摄短视频、Vlog来分享自己生活精彩的瞬间。不过录制视频时&#xff0c;如果单纯靠手机拾音&#xff0c;距离手机越远&#xff0c;声音越小越不清晰如果有噪音干扰&#xff0c;那更是“惨不忍…

ONVIF相关介绍

ONVIF致力于通过全球性的开放接口标准来推进网络视频在安防市场的应用,这一接口标准将确保不同厂商生产的网络视频产品具有互通性。2008年11月,论坛正式发布了ONVIF第一版规范——ONVIF核心规范1.0。随着视频监控的网络化应用,产业链的分工将越来越细。有些厂商专门做摄像头…

spring和mybatis中的连接池和缓存

文章目录 十、连接池10.1连接池10.2、mybatis连接池的分类 十一、mybatis的缓存一级缓存和二级缓存使用一级缓存失效的四种情况&#xff1a;11.1、不同的SqlSession对应不同的一级缓存。11.2、MyBatis的二级缓存 二级缓存开启的条件&#xff1a;11、3二级缓存的相关配置11.4、m…

计算机视觉与深度学习实战,Python为工具,基于计算机视觉的自动驾驶应用

一、引言 随着人工智能技术的飞速发展,计算机视觉与深度学习已成为当今科技领域的热点。其中,自动驾驶技术作为二者的完美结合,已经引起了广泛关注。自动驾驶技术依赖于计算机视觉实现对周围环境的感知与理解,通过深度学习对大量数据进行处理和分析,从而实现无人驾驶的目标…

pytest中失败用例重跑

pip install pytest-rerunfailures 下载rerunfailures插件包 配置文件中加入命令 --reruns 次数 也可在命令行中pytest --rerun-failures2 可以在allure报告中看到重试效果

【Echarts系列】水平柱状图

【Echarts系列】水平柱状图 序示例数据格式代码 序 为了节省后续开发学习成本&#xff0c;这个系列将记录我工作所用到的一些echarts图表。 示例 水平柱状图如图所示&#xff1a; 数据格式 data [{name: 于洪区,value: 2736},{name: 新民市,value: 2844},{name: 皇姑区,…

使用v-for实现点击当前li,li背景颜色变为红色,其余颜色不变

在 Vue 3 中&#xff0c;可以使用 <script setup> 语法糖来简化组件的编写。 下面是一个使用 Vue 3 和 <script setup> 实现的示例&#xff1a; <template> <ul> <li v-for"(item, index) in items" :key"index" :cl…

C++:SLT容器-->queue

C:SLT容器-->queue 1. queue容器2. queue 常用接口 1. queue容器 先进先出队列允许从一端插入元素&#xff0c;从另一端删除元素队列中只有队头和队尾可以被外界使用&#xff0c;因此队列不允许有遍历行为队列中插入数据称为入队(push)&#xff0c;删除数据称为出队(pop) …