Python使用BeautifulSoup解析并獲取圖片的實(shí)戰(zhàn)分享
一、前言
在本文我們將以下面的例子帶著大家去看看在實(shí)戰(zhàn)中是如何運(yùn)用的。
目標(biāo)url:https://www.58pic.com/tupian/1272.html
二、數(shù)據(jù)分析
根據(jù)下圖所示,圖片被保存至img標(biāo)簽下,并且class值為lazy。當(dāng)然這個(gè)網(wǎng)站除了lazy的img標(biāo)簽還有其他的(比如:class="lazy-bg-img"),這個(gè)可以自己想辦法處理一下,如何去獲取所有跟圖片有關(guān)的img標(biāo)簽。

三、數(shù)據(jù)獲取及展示
數(shù)據(jù)獲取
'''
爬蟲:
?
目標(biāo)網(wǎng)站:https://www.58pic.com/c/27075257
?
任務(wù)需求:1、抓取第一頁前36張圖片 2、使用bs4解析
'''
import time
?
import requests
from bs4 import BeautifulSoup
?
?
class Image(object):
def __init__(self):
self.headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 Edg/116.0.1938.62'
}
?
def parse_url(self,url):
print('開始分析')
resp = requests.get(url,headers=self.headers)
#print(resp.text)
if resp.status_code == 200:
soup = BeautifulSoup(resp.text,'lxml')
image_list = soup.find_all('img',class_='lazy-bg-img',limit=36)
#print(image_list)
for data in image_list:
title = data.get('alt')
# print(title)
print(f"開始下載 {title}")
img_url = 'https:'+data.get('data-original')
self.image_save(title,img_url)
else:
return None
?
def image_save(self,title,url):
resp = requests.get(url,headers=self.headers)
content = resp.content
with open('./img/'+title+'.jpg',mode='wb')as f:
f.write(content)
?
if __name__ == '__main__':
t = time.time()
url='https://www.58pic.com/tupian/1272.html'
image = Image()
image.parse_url(url)
print("總共耗時(shí):",time.time()-t)
最終效果展示


四、結(jié)語
根據(jù)示例,我們會(huì)發(fā)現(xiàn)通過bs4解析可以很快速的根據(jù)標(biāo)簽的特殊性得到我們想要的數(shù)據(jù)。但要注意,有時(shí)候我們得到的響應(yīng)內(nèi)容會(huì)與F12打開看到的不同,所有在發(fā)現(xiàn)沒有拿到數(shù)據(jù)的時(shí)候,請(qǐng)考慮我們得到的相應(yīng)內(nèi)容里面究竟是什么樣子的。
到此這篇關(guān)于Python使用BeautifulSoup解析并獲取圖片的實(shí)戰(zhàn)分享的文章就介紹到這了,更多相關(guān)Python BeautifulSoup獲取圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python socket如何實(shí)現(xiàn)服務(wù)端和客戶端數(shù)據(jù)傳輸(TCP)
這篇文章主要介紹了Python socket如何實(shí)現(xiàn)服務(wù)端和客戶端數(shù)據(jù)傳輸(TCP),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
python正則表達(dá)式匹配[]中間為任意字符的實(shí)例
今天小編就為大家分享一篇python正則表達(dá)式匹配[]中間為任意字符的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Python練習(xí)之讀取XML節(jié)點(diǎn)和屬性值的方法
這篇文章主要介紹了Python練習(xí)之讀取XML節(jié)點(diǎn)和屬性值的方法,通過parse函數(shù)可以讀取XML文檔,該函數(shù)返回ElementTree類型的對(duì)象,通過該對(duì)象的iterfind方法可以對(duì)XML中特定節(jié)點(diǎn)進(jìn)行迭代2022-06-06
Python for Informatics 第11章 正則表達(dá)式(一)
這篇文章主要介紹了Python for Informatics 第11章 正則表達(dá)式(一)的相關(guān)資料,需要的朋友可以參考下2016-04-04
Python3實(shí)現(xiàn)爬取簡書首頁文章標(biāo)題和文章鏈接的方法【測試可用】
這篇文章主要介紹了Python3實(shí)現(xiàn)爬取簡書首頁文章標(biāo)題和文章鏈接的方法,結(jié)合實(shí)例形式分析了Python3基于urllib及bs4庫針對(duì)簡書網(wǎng)進(jìn)行文章抓取相關(guān)操作技巧,需要的朋友可以參考下2018-12-12

