Python3.x爬蟲下載網(wǎng)頁圖片的實(shí)例講解
一、選取網(wǎng)址進(jìn)行爬蟲
本次我們選取pixabay圖片網(wǎng)站
url=https://pixabay.com/
二、選擇圖片右鍵選擇查看元素來尋找圖片鏈接的規(guī)則
通過查看多個(gè)圖片路徑我們發(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)址打不開的情況,加個(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)前圖片無法下載') continue file_name = "image/"+str(i)+".jpg" #拼接圖片名 print(file_name) #將圖片存入本地 fp = open(file_name,'wb') fp.write(pic.content) #寫入圖片 fp.close() i+=1
代碼是不是很簡(jiǎn)單呢 如果你想修改地址 取爬取別的網(wǎng)站 請(qǐng)注意分析下載圖片路徑的共性 并設(shè)計(jì)合理的正則表達(dá)式,否則是無法獲取到圖片路徑的
執(zhí)行過程截圖:
以上這篇Python3.x爬蟲下載網(wǎng)頁圖片的實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python下載商品數(shù)據(jù)并連接數(shù)據(jù)庫且保存數(shù)據(jù)
這篇文章主要介紹了Python下載商品數(shù)據(jù)并連接數(shù)據(jù)庫且保存數(shù)據(jù),包括發(fā)送請(qǐng)求、獲取數(shù)據(jù)、解析數(shù)據(jù)(篩選數(shù)據(jù))、保存數(shù)據(jù)、連接數(shù)據(jù)庫等內(nèi)容,需要的小伙伴可以參考一下2022-03-03python腳本實(shí)現(xiàn)mp4中的音頻提取并保存在原目錄
這篇文章主要介紹了python腳本實(shí)現(xiàn)mp4中的音頻提取并保存在原目錄,本文給大家通過實(shí)例代碼介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02python 隨機(jī)數(shù)生成的代碼的詳細(xì)分析
如果你對(duì)python隨機(jī)數(shù)生成的實(shí)際應(yīng)用有不解之處,你就可以通過以下的內(nèi)容對(duì)其進(jìn)行了解,以下十九相關(guān)內(nèi)容的介紹2011-05-05pyinstaller打包opencv和numpy程序運(yùn)行錯(cuò)誤解決
這篇文章主要介紹了pyinstaller打包opencv和numpy程序運(yùn)行錯(cuò)誤解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08簡(jiǎn)單了解Django應(yīng)用app及分布式路由
這篇文章主要介紹了簡(jiǎn)單了解Django應(yīng)用app及分布式路由,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07