Python3.x爬蟲(chóng)下載網(wǎng)頁(yè)圖片的實(shí)例講解
一、選取網(wǎng)址進(jìn)行爬蟲(chóng)
本次我們選取pixabay圖片網(wǎng)站
url=https://pixabay.com/


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


通過(guò)查看多個(gè)圖片路徑我們發(fā)現(xiàn)取src路徑都含有 https://cdn.pixabay.com/photo/ 公共部分且圖片格式都為.jpg 因此正則表達(dá)式為
re.compile(r'^https://cdn.pixabay.com/photo/.*?jpg$')
通過(guò)以上的分析我們可以開(kāi)始寫(xiě)程序了
#-*- coding:utf-8 -*-
import re
import requests
import os
from bs4 import BeautifulSoup
url = 'https://pixabay.com/'
html = requests.get(url).text #獲取網(wǎng)頁(yè)內(nèi)容
print(html)
# 這里由于有些圖片可能存在網(wǎng)址打不開(kāi)的情況,加個(gè)5秒超時(shí)控制。
#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) #超時(shí)異常判斷 5秒超時(shí)
except requests.exceptions.ConnectionError:
print('當(dāng)前圖片無(wú)法下載')
continue
file_name = "image/"+str(i)+".jpg" #拼接圖片名
print(file_name)
#將圖片存入本地
fp = open(file_name,'wb')
fp.write(pic.content) #寫(xiě)入圖片
fp.close()
i+=1
代碼是不是很簡(jiǎn)單呢 如果你想修改地址 取爬取別的網(wǎng)站 請(qǐng)注意分析下載圖片路徑的共性 并設(shè)計(jì)合理的正則表達(dá)式,否則是無(wú)法獲取到圖片路徑的
執(zhí)行過(guò)程截圖:

以上這篇Python3.x爬蟲(chóng)下載網(wǎng)頁(yè)圖片的實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
通過(guò)VS下載的NuGet包修改其下載存放路徑的操作方法
這篇文章主要介紹了通過(guò)VS下載的NuGet包如何修改其下載存放路徑,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09
Python?操作Excel-openpyxl模塊用法實(shí)例
openpyxl 模塊是一個(gè)讀寫(xiě) Excel 2010 文檔的 Python 庫(kù),如果要處理更早格式的 Excel 文 檔,需要用到額外的庫(kù),openpyxl 是一個(gè)比較綜合的工具,能夠同時(shí)讀取和修改 Excel 文檔,這篇文章主要介紹了Python?操作Excel-openpyxl模塊使用,需要的朋友可以參考下2023-05-05
jenkins+python自動(dòng)化測(cè)試持續(xù)集成教程
這篇文章主要介紹了jenkins+python自動(dòng)化測(cè)試持續(xù)集成教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
Scrapy模擬登錄趕集網(wǎng)的實(shí)現(xiàn)代碼
這篇文章主要介紹了Scrapy模擬登錄趕集網(wǎng)的實(shí)現(xiàn)代碼,本文通過(guò)代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
一文解密Python函數(shù)的實(shí)現(xiàn)原理
函數(shù)是任何一門(mén)編程語(yǔ)言都具備的基本元素,它可以將多個(gè)要執(zhí)行的操作組合起來(lái),一個(gè)函數(shù)代表了一系列的操作。那就來(lái)看看Python函數(shù)的實(shí)現(xiàn)原理吧2023-03-03
python數(shù)據(jù)預(yù)處理 :數(shù)據(jù)抽樣解析
這篇文章主要介紹了python數(shù)據(jù)預(yù)處理 :數(shù)據(jù)抽樣解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02

