日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

python自動(dòng)下載圖片的方法示例

瀏覽:103日期:2022-08-01 10:19:18

近日閑來無事,總有一種無形的力量縈繞在朕身邊,讓朕精神渙散,昏昏欲睡。

python自動(dòng)下載圖片的方法示例

可是,像朕這么有職業(yè)操守的社畜怎么能在上班期間睡瞌睡呢,我不禁陷入了沉思。。。。

python自動(dòng)下載圖片的方法示例

突然旁邊的IOS同事問:‘嘿,兄弟,我發(fā)現(xiàn)一個(gè)網(wǎng)站的圖片很有意思啊,能不能幫我保存下來提升我的開發(fā)靈感?’作為一個(gè)堅(jiān)強(qiáng)的社畜怎么能說自己不行呢,當(dāng)時(shí)朕就不假思索的答應(yīng):‘oh, It’s simple. Wait for me a few minute.’

python自動(dòng)下載圖片的方法示例

點(diǎn)開同事給的圖片網(wǎng)站,

網(wǎng)站大概長這樣:

python自動(dòng)下載圖片的方法示例

在朕翻看了幾十頁之后,朕突然覺得有點(diǎn)上頭。心中一想’不對(duì)啊,朕不是來學(xué)習(xí)的嗎?可是看美女圖片這個(gè)事情怎么才可以和學(xué)習(xí)關(guān)聯(lián)起來呢‘

python自動(dòng)下載圖片的方法示例

冥思苦想一番之后,突然腦中靈光一閃,’要不用python寫個(gè)爬蟲吧,將此網(wǎng)站的圖片一網(wǎng)打盡‘。

python自動(dòng)下載圖片的方法示例

說干就干,身體力行,要問爬蟲哪家強(qiáng),‘人生苦短,我用python’。

首先找到我的電腦里面半年前下載的python安裝包,無情的點(diǎn)擊了安裝,環(huán)境裝好之后,略一分析網(wǎng)頁結(jié)構(gòu)。先擼一個(gè)簡(jiǎn)易版爬蟲

#抓取愛小姐姐網(wǎng)圖片保存到本地import requestsfrom lxml import etree as etimport os#請(qǐng)求頭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’}#待抓取網(wǎng)頁基地址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) #獲取圖片內(nèi)容 response = requests.get(pic_url, headers = headers) #寫入圖片 with open(file_name,’wb’) as fp: for data in response.iter_content(128): fp.write(data)#觀察此網(wǎng)站總共只有62頁,所以循環(huán)62次for k in range(1,63): #請(qǐng)求頁面地址 url = base_url+str(k) response = requests.get(url = url, headers = headers) #請(qǐng)求狀態(tài)碼 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!’)

嘗試運(yùn)行爬蟲,嘿,沒想到行了:

python自動(dòng)下載圖片的方法示例

python自動(dòng)下載圖片的方法示例

過了一會(huì)兒,旁邊的哥們兒又來:‘嘿 bro 你這個(gè)可以是可以,就是速度太慢了啊,我的靈感會(huì)被長時(shí)間的等待磨滅,你給改進(jìn)改進(jìn)?’

python自動(dòng)下載圖片的方法示例

怎么提升爬蟲的效率呢?略一思索,公司的電腦可是偉大的四核CPU啊,要不擼個(gè)多進(jìn)程版本試試。然后就產(chǎn)生了下面這個(gè)多進(jìn)程版本

#多進(jìn)程版——抓取愛小姐姐網(wǎng)圖片保存到本地import requestsfrom lxml import etree as etimport osimport timefrom multiprocessing import Pool#請(qǐng)求頭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’}#待抓取網(wǎng)頁基地址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) #獲取圖片內(nèi)容 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): #請(qǐng)求頁面地址 #url = base_url+str(k) response = requests.get(url = url, headers = headers) #請(qǐng)求狀態(tài)碼 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() #利用進(jìn)程池方式創(chuàng)建進(jìn)程,默認(rèn)創(chuàng)建進(jìn)程數(shù)量=電腦核數(shù) #自己定義進(jìn)程數(shù)量方式 pool = Pool(4) pool = Pool() pool.map(geturl,url_list) pool.close() pool.join() b1 = time.time() print(’運(yùn)行時(shí)間:’,b1-a1)

抱著試一試的心態(tài),運(yùn)行了多進(jìn)程版本爬蟲,嘿?zèng)]想到又行了,在朕偉大的四核CPU的加持下,爬蟲速度提升了3~4倍。又過了一會(huì)兒,那哥們兒又偏過頭來:‘你這個(gè)快是快了不少,但是還不是最理想的狀態(tài),能不能一眨眼就能爬取百八十個(gè)圖片,畢竟我的靈感來的快去的也快’

我:‘…’悄悄打開Google,搜索如何提升爬蟲效率,給出結(jié)論:

多進(jìn)程:密集CPU任務(wù),需要充分使用多核CPU資源(服務(wù)器,大量的并行計(jì)算)的時(shí)候,用多進(jìn)程。多線程:密集I/O任務(wù)(網(wǎng)絡(luò)I/O,磁盤I/O,數(shù)據(jù)庫I/O)使用多線程合適。

呵,我這可不就是I/O密集任務(wù)嗎,趕緊寫一個(gè)多線程版爬蟲先。于是,又誕生了第三款:

import threading # 導(dǎo)入threading模塊from queue import Queue #導(dǎo)入queue模塊import time #導(dǎo)入time模塊import requestsimport osfrom lxml import etree as et#請(qǐng)求頭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’}#待抓取網(wǎng)頁基地址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) #獲取圖片內(nèi)容 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隊(duì)列的get方法用于從隊(duì)列中提取元素 response = requests.get(url = url, headers = headers) #請(qǐng)求狀態(tài)碼 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_urlsavePic(a)# 爬取文章列表頁def get_detail_url(queue): for i in range(1,100): #time.sleep(1) # 延時(shí)1s,模擬比爬取文章詳情要快 #Queue隊(duì)列的put方法用于向Queue隊(duì)列中放置元素,由于Queue是先進(jìn)先出隊(duì)列,所以先被Put的URL也就會(huì)被先get出來。 page_url = base_url+format(i) queue.put(page_url) print('put page url {id} end'.format(id = page_url))#打印出得到了哪些文章的url#主函數(shù)if __name__ == '__main__': detail_url_queue = Queue(maxsize=1000) #用Queue構(gòu)造一個(gè)大小為1000的線程安全的先進(jìn)先出隊(duì)列 #A線程負(fù)責(zé)抓取列表url thread = threading.Thread(target=get_detail_url, args=(detail_url_queue,)) html_thread= [] #另外創(chuàng)建三個(gè)線程負(fù)責(zé)抓取圖片 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() # 啟動(dòng)四個(gè)線程 thread.start() for i in range(20): html_thread[i].start() # 等待所有線程結(jié)束,thread.join()函數(shù)代表子線程完成之前,其父進(jìn)程一直處于阻塞狀態(tài)。 thread.join() for i in range(20): html_thread[i].join() print('last time: {} s'.format(time.time()-start_time))#等ABCD四個(gè)線程都結(jié)束后,在主進(jìn)程中計(jì)算總爬取時(shí)間。

粗略測(cè)試一下,得出結(jié)論: ‘Oh my god,這也太快了吧’。將多線程版本爬蟲扔到同事QQ頭像的臉上,并附文:‘拿去,速滾’

到此這篇關(guān)于python自動(dòng)下載圖片的方法示例的文章就介紹到這了,更多相關(guān)python 自動(dòng)下載圖片內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩和欧美一区二区| 久久男人av| 亚洲风情在线资源| 色综合五月天| 九色porny丨国产首页在线| 少妇久久久久| 水蜜桃久久夜色精品一区的特点| 免费的成人av| 国产福利资源一区| 91精品一区二区三区综合在线爱| 亚洲精品电影| 天堂va在线高清一区| 欧美韩一区二区| 91精品国产自产在线观看永久∴| 亚洲综合不卡| 国产日韩一区二区三区在线播放| 久久国产三级精品| 国产成人精品一区二区三区视频| 999久久久91| 欧美精品中文| 欧美精品一区二区久久| 综合五月婷婷| 一区二区精品伦理...| 视频一区二区欧美| 久久午夜影院| 综合激情五月婷婷| 久久精品二区三区| 国产精品亚洲二区| 午夜影院欧美| 精品一区二区三区视频在线播放 | 麻豆精品99| 99日韩精品| 国产一区二区三区四区| 爽好久久久欧美精品| 黄色在线观看www| 日韩国产在线不卡视频| 99久久亚洲精品蜜臀| 国产乱论精品| 久久夜色精品| 99久久99久久精品国产片果冰| 久久黄色影视| 免费成人性网站| 午夜欧美视频| 久久在线视频免费观看| 国产精品亚洲综合在线观看| 亚洲开心激情| 亚洲一区欧美| 在线亚洲国产精品网站| 日韩伦理在线一区| 久久精品国产亚洲aⅴ | 欧美日韩视频网站| 欧美国产先锋| 国产伦精品一区二区三区视频| 天海翼精品一区二区三区| 欧美特黄一区| 99视频精品| 亚洲丝袜美腿一区| 99视频精品免费观看| 好吊日精品视频| 国产午夜精品一区二区三区欧美| 久久亚洲在线| 美女91精品| 亚洲精品无播放器在线播放| 四虎精品永久免费| 日韩av三区| 精品久久亚洲| 日韩不卡免费高清视频| 99精品美女| 亚洲深夜影院| 日韩精品一区二区三区中文字幕| 日韩欧美激情电影| 国产精品成人**免费视频| 久久av免费| 日韩成人免费| 国产亚洲精品久久久久婷婷瑜伽| 亚洲精品乱码| 精品女同一区二区三区在线观看| 97精品97| 久久国产精品久久w女人spa| 日韩欧美2区| 成人免费一区| 视频在线观看一区| 久久99久久久精品欧美| 精品捆绑调教一区二区三区| 老司机久久99久久精品播放免费| 国产精品中文| 国产精品av一区二区| 综合一区av| 日本美女一区| 亚洲麻豆一区| 成人看片网站| 国产精品亚洲片在线播放| 久久国产亚洲| 久久丁香四色| 免费一级片91| 日本免费一区二区三区四区| 欧美综合精品| 免费日韩视频| 日韩在线二区| 国产精品久久久久久模特| 色88888久久久久久影院| 日韩国产在线一| 亚洲性视频h| 久久成人福利| 亚洲精品日本| 蜜桃久久av| 亚洲女同一区| 涩涩av在线| 精品亚洲成人| 国产精品亚洲综合色区韩国| 中文字幕成人| 日韩一区精品视频| 亚洲少妇诱惑| 伊人久久亚洲影院| 99久久精品国产亚洲精品| 福利一区二区免费视频| 91精品丝袜国产高跟在线| 久久电影一区| 精品国产99| 亚洲成人三区| 久久精品国产免费| 六月天综合网| 韩国三级一区| 婷婷成人在线| 欧美日本不卡| 亚洲免费在线| 久久久久美女| 麻豆国产精品视频| 久久av免费| 日韩精品高清不卡| 国产欧美日韩一区二区三区在线| 国产精品中文字幕亚洲欧美 | 久久久免费人体| 天堂а√在线最新版中文在线| 日韩国产欧美视频| 国产麻豆综合| 黑丝一区二区三区| 91日韩欧美| 久久精品国产网站| 伊伊综合在线| 999精品色在线播放| 国产日韩欧美高清免费| 老鸭窝一区二区久久精品| 国产精品一区二区三区美女| 色88888久久久久久影院| 欧美午夜不卡| 噜噜噜久久亚洲精品国产品小说| 在线日韩成人| 日本不卡视频一二三区| 国产精品激情电影| 国产成人a视频高清在线观看| 精品1区2区3区4区| 日本欧美一区二区| 精品欧美日韩精品| 亚洲精品福利| 激情久久久久久久| 中文无码日韩欧| 国产精选在线| 亚洲精品免费观看| 自拍日韩欧美| 欧美综合另类| 久久三级中文| 视频一区视频二区中文| 精品一区二区三区在线观看视频| 波多野结衣久久精品| 国产99亚洲| 国产欧美自拍一区| 日韩国产欧美一区二区| 香蕉久久久久久久av网站| 欧美亚洲免费| 国产v日韩v欧美v| 羞羞答答国产精品www一本| 青青草精品视频| 美女久久久久久| 日韩在线播放一区二区| 高清一区二区三区| 欧美日中文字幕| 亚洲另类视频| 国产亚洲毛片| 久久免费大视频| 日韩精品一卡| 99久久九九| 激情综合亚洲| 黑丝一区二区| 丝袜美腿亚洲一区| 在线综合亚洲| 中文日韩在线| 热久久久久久久| 免费成人性网站| 亚洲精品欧美| 国产精品主播在线观看| 日韩国产在线观看一区| 综合激情在线| 欧美在线观看天堂一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 免费精品国产的网站免费观看| 日韩精品免费一区二区三区| 亚洲v在线看| 先锋影音国产一区| 日韩av不卡在线观看|