溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python3.x爬蟲下載網(wǎng)頁圖片的實例講解

發(fā)布時間:2020-10-17 17:51:30 來源:腳本之家 閱讀:235 作者:hanchaobiao 欄目:開發(fā)技術(shù)

一、選取網(wǎng)址進(jìn)行爬蟲

本次我們選取pixabay圖片網(wǎng)站

url=https://pixabay.com/

Python3.x爬蟲下載網(wǎng)頁圖片的實例講解

Python3.x爬蟲下載網(wǎng)頁圖片的實例講解

二、選擇圖片右鍵選擇查看元素來尋找圖片鏈接的規(guī)則

Python3.x爬蟲下載網(wǎng)頁圖片的實例講解

Python3.x爬蟲下載網(wǎng)頁圖片的實例講解

通過查看多個圖片路徑我們發(fā)現(xiàn)取src路徑都含有 https://cdn.pixabay.com/photo/ 公共部分且圖片格式都為.jpg 因此正則表達(dá)式為

re.compile(r'^https://cdn.pixabay.com/photo/.*?jpg$') 

通過以上的分析我們可以開始寫程序了

#-*- coding:utf-8 -*-
import re
import requests
import os
from bs4 import BeautifulSoup

url = 'https://pixabay.com/'
html = requests.get(url).text #獲取網(wǎng)頁內(nèi)容
print(html)
# 這里由于有些圖片可能存在網(wǎng)址打不開的情況,加個5秒超時控制。
#data-objurl="http://pic38.nipic.com/20140218/17995031_091821599000_2.jpg"獲取這種類型鏈接
soup = BeautifulSoup(html,'html.parser',from_encoding='utf-8')
#^abc.*?qwe$
pic_url = soup.find_all('img',src=re.compile(r'^https://cdn.pixabay.com/photo/.*?jpg$'))
#pic_url = pic_node.get_text()
#pic_url = re.findall('"https://cdn.pixabay.com/photo/""(.*?)",',html,re.S)
print(pic_url)
i = 0
#判斷image文件夾是否存在,不存在則創(chuàng)建
if not os.path.exists('image'):
 os.makedirs('image')
for url in pic_url:
 img = url['src']
 try:
 pic = requests.get(img,timeout=5) #超時異常判斷 5秒超時
 except requests.exceptions.ConnectionError:
 print('當(dāng)前圖片無法下載')
 continue
 file_name = "image/"+str(i)+".jpg" #拼接圖片名
 print(file_name)
 #將圖片存入本地
 fp = open(file_name,'wb')
 fp.write(pic.content) #寫入圖片
 fp.close()
 i+=1

代碼是不是很簡單呢 如果你想修改地址 取爬取別的網(wǎng)站 請注意分析下載圖片路徑的共性 并設(shè)計合理的正則表達(dá)式,否則是無法獲取到圖片路徑的

執(zhí)行過程截圖:

Python3.x爬蟲下載網(wǎng)頁圖片的實例講解

以上這篇Python3.x爬蟲下載網(wǎng)頁圖片的實例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI