日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】urllib爬取动漫图片

發(fā)布時(shí)間:2023/12/3 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】urllib爬取动漫图片 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

首先附上需要爬取圖片的網(wǎng)站,應(yīng)該算是個(gè)冷門網(wǎng)站,夠練手用的了,我的博客圖片大部分來自于這里

二次元圖片網(wǎng)站

篩選src里的數(shù)據(jù)

用par =r’<img src="[^"]+.jpg">'可以篩選出帶有里面的內(nèi)容

html='dasdas <img src="Hello.jpg">adasdassdasdasd<img src="Hello123.jpg">' par =r'<img src="[^"]+\.jpg">' html=re.findall(par,html)

篩選網(wǎng)頁中src數(shù)據(jù)

切記:<img后的">“絕對(duì)不可加上,否則無法匹配,只需要寫上前一部分即可
par =r’<img class=“pic-large” src=”(.*?)"

封裝函數(shù)后的爬取單個(gè)網(wǎng)頁圖片集代碼:

import urllib.request import re #成功爬取當(dāng)前頁面所有圖片地址def open_url(url):headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36',}response =urllib.request.Request(url = url ,headers = headers)webPage = urllib.request.urlopen(response)html=webPage.read()html=html.decode("utf-8")return htmldef get_img(html):par =r'<img class="pic-large" src="(.*?)"'html=re.findall(par,html)for each in html:print(each)response =urllib.request.urlopen(each)cat_img =response.read()with open('cat_200_300.jpg','wb') as f:f.write(cat_img)if __name__ == '__main__':url="http://www.win4000.com/wallpaper_detail_160820_3.html"get_img(open_url(url))

開始批量爬圖

首先來分析下我們爬取的網(wǎng)站:爬取的二次元網(wǎng)站



分析它的url:
1、這里總共八張圖片,第一張的地址后綴沒有_01,第二張到第八章都有2-8的后綴,所以分兩部分爬
2、爬首頁

爬后面七張圖片

下面貼出代碼:

import urllib.request import re #成功爬取當(dāng)前頁面所有圖片地址def open_url(url):response =urllib.request.urlopen(url)html=response.read()html=html.decode("utf-8")return htmldef get_img(html):par =r'<img class="pic-large" src="(.*?)"'html=re.findall(par,html)for each in html:print(each)filename = each.split("/")[-1]urllib.request.urlretrieve(each,filename,None)if __name__ == '__main__':url="http://www.win4000.com/wallpaper_detail_160877.html"get_img(open_url(url))for num in range(2,9):url="http://www.win4000.com/wallpaper_detail_160877_%d"%(num)html=".html"text=url+htmlprint(text)get_img(open_url(text))

可一次性爬取八張圖,后續(xù)只要更換該網(wǎng)址的其他界面即可

全部是1920*1080的高清照片
(以前爬過百度搜狗圖片,質(zhì)量太差)

所以你說我博客上的動(dòng)漫圖片哪來的,這就是答案

用open的方法可以在指定文件夾(同等目錄)放入相應(yīng)文件

f=open("hello/tello.jpg","w") constant="i love you" f.write(constant) f.close() #可以寫入任何硬盤當(dāng)中

終極封裝完成后的代碼

(你只需要輸入它的首頁地址即可)

import urllib.request import re #成功爬取當(dāng)前頁面所有圖片地址def open_url(url):response =urllib.request.urlopen(url)html=response.read()html=html.decode("utf-8")return htmldef get_img(html):par =r'<img class="pic-large" src="(.*?)"'html=re.findall(par,html)for each in html:print(each)filename = each.split("/")[-1]urllib.request.urlretrieve(each,filename,None)if __name__ == '__main__':while(1):word=input(("請(qǐng)輸入所要圖片的首頁網(wǎng)址:"))url1=word[:-5]url2=".html"url=url1+url2get_img(open_url(url))for num in range(2,9):url=url1+"_"+str(num)html=".html"text=url+htmlprint(text)get_img(open_url(text))

這是我第一次完完全全封裝好代碼,自己研究某個(gè)網(wǎng)站的一些屬性,到一點(diǎn)點(diǎn)琢磨,終于把那種本來需要機(jī)械重復(fù)無數(shù)次的操作,變?yōu)楦咝в趾?jiǎn)潔的代碼。盡管代碼還不夠強(qiáng)健
但是通過自己一點(diǎn)一點(diǎn)完善推敲出來的感覺就是不一樣


加入死循環(huán)后只需重復(fù)添加首頁地址即可,看中那個(gè)首頁就直接下載下來


完美,改天換別的網(wǎng)站繼續(xù)爬!!!!加油
爬圖一時(shí)爽,一直爬圖一直爽!!!!

總結(jié)

以上是生活随笔為你收集整理的【Python】urllib爬取动漫图片的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。