這篇文章主要介紹如何使用python爬取百度圖片網(wǎng)站并批量下載圖片,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)主營大理州網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā)公司,大理州h5小程序開發(fā)搭建,大理州網(wǎng)站營銷推廣歡迎大理州等地區(qū)企業(yè)咨詢
import os
import requests
import re
keyWord = "楊超越" # 設(shè)置爬取圖片的主題
number = 10 # 爬取圖片數(shù)量
if not os.path.exists(keyWord):
os.makedirs(keyWord)
url = r'http://image.baidu.com/search/flip?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq' \
r'=1497491098685_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&ctd' \
r'=1497491098685%5E00_1519X735&word=' + keyWord
get = requests.get(url)
pciture_url = re.findall(r'objURL":"(.*?)",', get.text)
a = 1
for i in pciture_url:
p_type = i.split('.')[-1]
a += 1
try:
picture = requests.get(i, timeout=10)
name = "%s/%s_%d.%s" % (keyWord, keyWord, a, p_type)
with open(name, 'wb') as f:
f.write(picture.content)
print('第%d張圖片正在下載' % a)
except:
print('第%d張圖片下載失敗!已跳過...' % a)
if a >= number:
break
代碼邏輯主要是爬取百度圖片網(wǎng)站的網(wǎng)頁源碼,然后從源碼中提取每張圖片的地址鏈接,使用循環(huán)保存每一張圖片。
可以將這份代碼直接拷貝到Python編輯器里,只需要修改keyWord變量和num變量,設(shè)置成自己想爬取的圖片主題和數(shù)量就可以運(yùn)行下載了。爬取的結(jié)果如下圖所示:
上面的代碼只能爬取一頁,因?yàn)樗粚σ粋€(gè)網(wǎng)址里的圖片鏈接進(jìn)行提取,如果想爬取大批量的圖片,需要提取圖片網(wǎng)站下一頁的鏈接,這個(gè)核心代碼如下,如果需要完整版代碼可以后臺(tái)回復(fù)【一行01】就可以獲得所有代碼
def get_url_one_page(url):
html = requests.get(url)
html.encoding = 'utf-8'
html = html.text
url_pic_this_page = re.findall(r'"objURL":"(.*?)",', html)
url_next_page_prefix = re.findall(r'下一頁', html)
if len(url_next_page_prefix) != 0:
url_next_page = 'http://image.baidu.com' + url_next_page_prefix[0]
else:
print("已到達(dá)最后一頁!")
url_next_page = None
return url_pic_this_page, url_next_page
之前的爬蟲,很多讀者說沒有接觸過Python或者爬蟲,想實(shí)現(xiàn)功能又看不懂代碼。所以行哥在這里已經(jīng)將這個(gè)Python代碼轉(zhuǎn)成可以直接使用的exe,如下圖所示:
在爬取關(guān)鍵詞里輸入想要爬取的圖片主題,然后輸入爬取圖片張數(shù),最后選擇圖片保存的路徑并點(diǎn)擊開始爬取就只需要靜靜等待即可(網(wǎng)速夠快的話,一般來說一秒下載一張圖片)最后下載后的結(jié)果如下
以上是“如何使用python爬取百度圖片網(wǎng)站并批量下載圖片”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!