python自动下载图片的方法示例_python

来源:脚本之家  责任编辑:小易  

你需要检查一下你的结果,看看是否请求成功了。可能服务器返回的并不是一个图片,但是你强制给他写入到图片

近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。

看你代码的意思就是匹配到第一个内容之后,完成下载,结束程序,所以只要加个循环就好了,具体的循环条件自

可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思。。。。

#到网上获取图片那个urlopen读取带上'b',二进制读取

突然旁边的IOS同事问:‘嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?'

Python图片文本识别使用的工具是PIL和pytesser。因为他们使用到很多的python库文件

作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:‘oh, It's simple. Wait for me a few minute.'

你不已经提出出来了吗?在做个下载,保存就行了。req=request.get(img.get

点开同事给的图片网站,

话说,某一年,我的脑袋被门挤了。跟几个…不想骂人。一起创业。公司业绩还不错。第一年,老大给了一万的红包。说公司困难,先给一万过节费,作为股东,一定要理解。以后必有重谢。话说,我的脑袋真被一万个门挤了。竟然相信了。第二年各种找茬,逼我走。我是各种忍…到年底,实在忍不住了。说,今年必须兑现承诺。大年三十,托人给我一个电话:今年不行了。我被门挤过一万零一次的脑袋突然变得异常冷静,只是淡淡的说:大过年的,别说这些。多晦气啊。好好过年,过完年我就不干了。初五,老板从北京开车来我家,各种装逼…我的回答只有一句话:我不干了。尽快把本金退给我。老板临走开车出去几百米后停下来,从后备箱里搬出一箱假茅台和两条中华

网站大概长这样:

一、平层、错层、跃层、复式、loft是什么?有何特点?1.平层又叫单平面层户型,是指所有的住宅功能位于同一平面上的户型。是应用最广的户型形式,其最大优势在于所有功能都在同一平面,因此它是最经济的户型,同时也是无障碍户型。缺点在于室内空间不够丰富,建筑外形比较单调。图为平层户型的优缺点示意图。平层户型具有实用、面积利用率大、室内无障碍等优点。2.错层主要指房内的厅、卧、卫、厨、阳台处于几个高度不同的平面上,错开之处有楼梯联系。其建筑特点是“静态”与“动态”相结合,用30至60公分的高度(2-4步楼梯)差进行空间隔断。优点是和跃层一样能够动静分区。错层式房屋不利于结构抗震,容易使小户型显得局促,更

在朕翻看了几十页之后,朕突然觉得有点上头。心中一想'不对啊,朕不是来学习的吗?可是看美女图片这个事情怎么才可以和学习关联起来呢‘

谢邀。我只能说,哥们,恭喜你,头发绿了。首先,表明下自己的立场,10多年的撩妹经验告诉我,我绝对不相信异性之间有纯友谊。我觉得男女之间的友谊,如果真的到了单独出去旅行的地步,很多事情都会发酵,而之间也必然存着些许不言而喻的情愫在里面。举一个我哥们的例子,很狗血也很令人值得反思。我哥们的女朋友跟题主的老婆一样,跟我哥们吵完架,突然说要一个人出去走走散散心,去了所在城市周边2小时车程的一个城市,呆了3~4天。之前我哥们也没多想,觉得去放松下心情确实蛮好的。但是!(注意,凡事都怕但是),故事在2个月之后有了神转折。我哥们的女朋友怀孕了,当时哥们很纳闷,每次都戴套,怎么就怀孕了呢?后来越想越不对劲,开

冥思苦想一番之后,突然脑中灵光一闪,'要不用python写个爬虫吧,将此网站的图片一网打尽‘。

归根到底就是父母在为孩子考虑的同时也要考虑自己!为什么呢?不是都说父母是无私的吗?首先,500万对绝大多数家庭来说都不是一个小数目,能一次性付清的寥寥无几,可以贷款,还20年30年。而200万呢,谁给你贷款上国际学校,都是自己真金白银的从兜里掏出来的。再次,从投资价值来说,都知道房子的保值性,500万的房子肯定也是一线城市了,10年后说不定已经涨到了600万。而200投资的国际学校呢,一定就教出一个非常好的学生吗?不一定,其中变数太多,10年后,有可能成功也有可能在打牛。所以家长们肯定会倾向于选择更稳妥能看到长效收益的房子,再说了500万附近的学区房公办院校有的教育资源也很好,为了将来自己不会

说干就干,身体力行,要问爬虫哪家强,‘人生苦短,我用python'。

首先找到我的电脑里面半年前下载的python安装包,无情的点击了安装,环境装好之后,略一分析网页结构。先撸一个简易版爬虫

#抓取爱小姐姐网图片保存到本地 import requests from lxml import etree as et import os #请求头 headers = { #用户代理 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36' } #待抓取网页基地址 base_url = '' #保存图片基本路径 base_dir = 'D:/python/code/aixjj/' #保存图片 def savePic(pic_url): #如果目录不存在,则新建 if not os.path.exists(base_dir): os.makedirs(base_dir) arr = pic_url.split('/') file_name = base_dir+arr[-2]+arr[-1] print(file_name) #获取图片内容 response = requests.get(pic_url, headers = headers) #写入图片 with open(file_name,'wb') as fp: for data in response.iter_content(128): fp.write(data) #观察此网站总共只有62页,所以循环62次 for k in range(1,63): #请求页面地址 url = base_url+str(k) response = requests.get(url = url, headers = headers) #请求状态码 code = response.status_code if code == 200: html = et.HTML(response.text) #获取页面所有图片地址 r = html.xpath('//li/a/img/@src') #获取下一页url #t = html.xpath('//div[@class="page"]/a[@class="ch"]/@href')[-1] for pic_url in r: a = 'http:'+pic_url savePic(a) print('第%d页图片下载完成' % (k)) print('The End!')

尝试运行爬虫,嘿,没想到行了:

过了一会儿,旁边的哥们儿又来:‘嘿 bro 你这个可以是可以,就是速度太慢了啊,我的灵感会被长时间的等待磨灭,你给改进改进?'

怎么提升爬虫的效率呢?略一思索,公司的电脑可是伟大的四核CPU啊,要不撸个多进程版本试试。然后就产生了下面这个多进程版本

#多进程版——抓取爱小姐姐网图片保存到本地 import requests from lxml import etree as et import os import time from multiprocessing import Pool #请求头 headers = { #用户代理 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36' } #待抓取网页基地址 base_url = '' #保存图片基本路径 base_dir = 'D:/python/code/aixjj1/' #保存图片 def savePic(pic_url): #如果目录不存在,则新建 if not os.path.exists(base_dir): os.makedirs(base_dir) arr = pic_url.split('/') file_name = base_dir+arr[-2]+arr[-1] print(file_name) #获取图片内容 response = requests.get(pic_url, headers = headers) #写入图片 with open(file_name,'wb') as fp: for data in response.iter_content(128): fp.write(data) def geturl(url): #请求页面地址 #url = base_url+str(k) response = requests.get(url = url, headers = headers) #请求状态码 code = response.status_code if code == 200: html = et.HTML(response.text) #获取页面所有图片地址 r = html.xpath('//li/a/img/@src') #获取下一页url #t = html.xpath('//div[@class="page"]/a[@class="ch"]/@href')[-1] for pic_url in r: a = 'http:'+pic_url savePic(a) if __name__ == '__main__': #获取要爬取的链接列表 url_list = [base_url+format(i) for i in range(1,100)] a1 = time.time() #利用进程池方式创建进程,默认创建进程数量=电脑核数 #自己定义进程数量方式 pool = Pool(4) pool = Pool() pool.map(geturl,url_list) pool.close() pool.join() b1 = time.time() print('运行时间:',b1-a1)

抱着试一试的心态,运行了多进程版本爬虫,嘿没想到又行了,在朕伟大的四核CPU的加持下,爬虫速度提升了3~4倍。

又过了一会儿,那哥们儿又偏过头来:‘你这个快是快了不少,但是还不是最理想的状态,能不能一眨眼就能爬取百八十个图片,毕竟我的灵感来的快去的也快'

我:‘…'

悄悄打开Google,搜索如何提升爬虫效率,给出结论:

多进程:密集CPU任务,需要充分使用多核CPU资源(服务器,大量的并行计算)的时候,用多进程。

多线程:密集I/O任务(网络I/O,磁盘I/O,数据库I/O)使用多线程合适。

呵,我这可不就是I/O密集任务吗,赶紧写一个多线程版爬虫先。于是,又诞生了第三款:

import threading # 导入threading模块 from queue import Queue #导入queue模块 import time #导入time模块 import requests import os from lxml import etree as et #请求头 headers = { #用户代理 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36' } #待抓取网页基地址 base_url = '' #保存图片基本路径 base_dir = 'D:/python/code/aixjj/' #保存图片 def savePic(pic_url): #如果目录不存在,则新建 if not os.path.exists(base_dir): os.makedirs(base_dir) arr = pic_url.split('/') file_name = base_dir+arr[-2]+arr[-1] print(file_name) #获取图片内容 response = requests.get(pic_url, headers = headers) #写入图片 with open(file_name,'wb') as fp: for data in response.iter_content(128): fp.write(data) # 爬取文章详情页 def get_detail_html(detail_url_list, id): while True: url = detail_url_list.get() #Queue队列的get方法用于从队列中提取元素 response = requests.get(url = url, headers = headers) #请求状态码 code = response.status_code if code == 200: html = et.HTML(response.text) #获取页面所有图片地址 r = html.xpath('//li/a/img/@src') #获取下一页url #t = html.xpath('//div[@class="page"]/a[@class="ch"]/@href')[-1] for pic_url in r: a = 'http:'+pic_url savePic(a) # 爬取文章列表页 def get_detail_url(queue): for i in range(1,100): #time.sleep(1) # 延时1s,模拟比爬取文章详情要快 #Queue队列的put方法用于向Queue队列中放置元素,由于Queue是先进先出队列,所以先被Put的URL也就会被先get出来。 page_url = base_url+format(i) queue.put(page_url) print("put page url {id} end".format(id = page_url))#打印出得到了哪些文章的url #主函数 if __name__ == "__main__": detail_url_queue = Queue(maxsize=1000) #用Queue构造一个大小为1000的线程安全的先进先出队列 #A线程负责抓取列表url thread = threading.Thread(target=get_detail_url, args=(detail_url_queue,)) html_thread= [] #另外创建三个线程负责抓取图片 for i in range(20): thread2 = threading.Thread(target=get_detail_html, args=(detail_url_queue,i)) html_thread.append(thread2)#B C D 线程抓取文章详情 start_time = time.time() # 启动四个线程 thread.start() for i in range(20): html_thread[i].start() # 等待所有线程结束,thread.join()函数代表子线程完成之前,其父进程一直处于阻塞状态。 thread.join() for i in range(20): html_thread[i].join() print("last time: {} s".format(time.time()-start_time))#等ABCD四个线程都结束后,在主进程中计算总爬取时间。

粗略测试一下,得出结论: ‘Oh my god,这也太快了吧'。

将多线程版本爬虫扔到同事QQ头像的脸上,并附文:‘拿去,速滚'

到此这篇关于python自动下载图片的方法示例的文章就介绍到这了,更多相关python 自动下载图片内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

求教python,如何用python自动下载文件

可以使用requests模块完成下载

# --------------------第一种:使用headers携带cookie-----------------------------

# coding = utf-8

import requests

headers = {

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64),  

'Cookie':'你的cookies',

}

# 发起请求,获取二进制数据

html_str = requests.get(url,headers=headers).content

# 写入文件,采用二进制写入文件

with open('路径/文件名.后缀','wb') as f:

f.write(html_str)

# --------------------第二种:在requests直接携带--------------------------------

# coding = utf-8

import requests

headers = {

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64),  

}

cookies = {你的cookies,这里必须是以键值对,也就是字典的形式}

# 发起请求,获取二进制数据

html_str = requests.get(url,headers=headers,cookies = cookies).content

# 写入文件,采用二进制写入文件

with open('路径/文件名.后缀','wb') as f:

f.write(html_str)

如何使用python批量下载图片

1、python有socket、httplib等模块能进行与网站间通信,如果有图片url集合,就直接使用这些库下载

2、如果是一些网页中的url,可以先把网页取下来,在用HTMLParser,sgmllib,htmllib等模块进行页面解析,提取出url集合

python 网络爬虫,怎么自动保存图片

def download_poster_image(movie):   #定义一个下载图片函数

    src = movie  #取出它的url

    r = requests.get(src)   #去获取这个url

    fname = url.split('/')[-1]   #从url里面获取这个文件名

    with open(fname, 'wb') as f:  #应答的内容写进去并且使用二进制

        f.write(s.content)

    movie['poster-path'] = fnameres = requests.get(url)

img_url = res.xpath('//img[@class="q-img-item"]/@src')

movie = img_url 

download_poster_image(movie) #执行函数

python opencv如何存图片到指定路径?按图上的会存到python_work文件夹

如图,修改倒数第四行的内容为:

cv2.imwrite('F:/xxx/yyy/' + str(c) + '.jpg', frame)

即可将图片存储到 F 盘的 xxx\yyy 目录中,这里按照你的需要修改即可更多追问追答追问我的路径最后写的是/python_work/jpg,但是输出到python_workjpg是我想要输出到的文件夹名追答那就把 yyy/ 改成 jpg/ 就可以了,最后要加一个斜杠的,否则它就是文件名前缀了

  • 本文相关:
  • python爬虫实现百度图片自动下载
  • python3.x+迅雷x 自动下载高分电影的实现方法
  • python ftp文件定时自动下载实现过程解析
  • python实现的远程文件自动打包并下载功能示例
  • 使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
  • python实现115网盘自动下载的方法
  • 用python实现将数组元素按从小到大的顺序排列方法
  • python实现从文件中读取数据并绘制成 x y 轴图形的方法
  • python魔法方法-属性访问控制详解
  • 使用matplotlib 绘制精美的数学图形例子
  • python爬虫开发之beautiful soup模块从安装到详细使用方法与实例
  • python 列表中[ ]中冒号‘:’的作用
  • python类继承用法实例分析
  • python端口扫描系统实现方法
  • python object类中的特殊方法代码讲解
  • python中的localtime()方法使用详解
  • 求教python,如何用python自动下载文件
  • 如何使用python批量下载图片
  • python 网络爬虫,怎么自动保存图片
  • python opencv如何存图片到指定路径?按图上的会存到python_work文件夹
  • python下载图片的连接是列表怎么解决
  • 使用Python爬虫下载图片,得到的图片不显示?
  • 【python写的百度贴吧下载图片】怎么下载其他的图片
  • python下载图片溢出的问题。
  • 这种图片可以用Python自动识别吗
  • python中怎么把图中的图片链接提取出来并且下载链接对应的图片啊
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全vbsdos/bathtahtcpythonperl游戏相关vba远程脚本coldfusionruby专题autoitseraphzonepowershelllinux shellluagolangerlang其它首页pythonpython爬虫实现百度图片自动下载python3.x+迅雷x 自动下载高分电影的实现方法python ftp文件定时自动下载实现过程解析python实现的远程文件自动打包并下载功能示例python实现115网盘自动下载的方法用python实现将数组元素按从小到大的顺序排列方法python实现从文件中读取数据并绘制成 x y 轴图形的方法python魔法方法-属性访问控制详解使用matplotlib 绘制精美的数学图形例子python爬虫开发之beautiful soup模块从安装到详细使用方法与实例python 列表中[ ]中冒号‘:’的作用python类继承用法实例分析python端口扫描系统实现方法python object类中的特殊方法代码讲解python中的localtime()方法使用详解python入门教程 超详细1小时学会python 列表(list)操作方法详解python 元组(tuple)操作详解python 字典(dictionary)操作详解pycharm 使用心得(一)安装和首python strip()函数 介绍python 中文乱码问题深入分析python科学计算环境推荐——anacpython逐行读取文件内容的三种方python中使用xlrd、xlwt操作excepython2.x中str与unicode相关问题的解决方python实现将文本转换成语音的方法使用python执行shell脚本 并动态传参 及spython3实现从kafka获取数据,并解析为jsopython安装whl文件过程图解python操作串口的方法使用opencv circle函数图像上画圆的示例代python中时间转换datetime和pd.to_datetipython贪吃蛇游戏代码python+pyqt实现系统桌面时钟
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved