您好,登錄后才能下訂單哦!
這篇文章主要介紹如何使用python爬取百度圖片網站并批量下載圖片,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
import os
import requests
import re
keyWord = "楊超越" # 設置爬取圖片的主題
number = 10 # 爬取圖片數量
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
代碼邏輯主要是爬取百度圖片網站的網頁源碼,然后從源碼中提取每張圖片的地址鏈接,使用循環保存每一張圖片。
可以將這份代碼直接拷貝到Python編輯器里,只需要修改keyWord變量和num變量,設置成自己想爬取的圖片主題和數量就可以運行下載了。爬取的結果如下圖所示:
上面的代碼只能爬取一頁,因為他只對一個網址里的圖片鏈接進行提取,如果想爬取大批量的圖片,需要提取圖片網站下一頁的鏈接,這個核心代碼如下,如果需要完整版代碼可以后臺回復【一行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'<a href="(.*?)" class="n">下一頁', html)
if len(url_next_page_prefix) != 0:
url_next_page = 'http://image.baidu.com' + url_next_page_prefix[0]
else:
print("已到達最后一頁!")
url_next_page = None
return url_pic_this_page, url_next_page
之前的爬蟲,很多讀者說沒有接觸過Python或者爬蟲,想實現功能又看不懂代碼。所以行哥在這里已經將這個Python代碼轉成可以直接使用的exe,如下圖所示:
在爬取關鍵詞里輸入想要爬取的圖片主題,然后輸入爬取圖片張數,最后選擇圖片保存的路徑并點擊開始爬取就只需要靜靜等待即可(網速夠快的話,一般來說一秒下載一張圖片)最后下載后的結果如下
以上是“如何使用python爬取百度圖片網站并批量下載圖片”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。