您現在所在位置: 主頁(yè) >
python怎么獲取網(wǎng)頁(yè)圖片
更新時(shí)間:2026-05-05 01:54:35
什么是網(wǎng)頁(yè)網(wǎng)頁(yè)圖片?
如何使用Python(′▽?zhuān)?)獲取網(wǎng)頁(yè)圖片?網(wǎng)頁(yè)
1、使用requests庫和BeautifulS??oup庫
我們需要安裝requests庫和BeautifulSoup庫,圖片可以使用以下命令進(jìn)行安裝:
pip install requestspip install beautifulsoup??4
接下來(lái),網(wǎng)頁(yè)我們可以使用requests庫獲取網(wǎng)頁(yè)內容,圖片然后使用Beauti??fulSoup庫解析HTML,網(wǎng)頁(yè)最后通過(guò)查找im??g標簽的src屬性獲取圖片鏈接。
import requestsfrom bs4 import BeautifulSoupurl = 'ht??tps://www.example.c??om'response = requests.(//ω//)get(url)soup = BeautifulSoup(response.ヽ(′ー`)ノtext, 'html.parser')img(′?_?`)_tags = soup.find_all('img')for img in img_tags: img_url = img['src'] print(img_url)2、使用Scrapy框架
Scrapy是一個(gè)強大的網(wǎng)絡(luò )爬蟲(chóng)框架,可以用來(lái)抓取網(wǎng)頁(yè)數據,我們需要安裝Scra??py庫:
pip install scrapy
接下來(lái),我們可以創(chuàng )建一個(gè)Scrapy項目,并編寫(xiě)爬蟲(chóng)代碼,在爬蟲(chóng)中,我們可以通過(guò)XPath或CSS選擇器定位到img標簽,并提取圖片鏈接。
Selenium是一個(gè)自動(dòng)化測試工具,也可以用來(lái)爬取網(wǎng)頁(yè)數據,與requests庫相比,Selenium可以模擬用戶(hù)操作,如點(diǎn)擊按鈕?、滾動(dòng)頁(yè)面等,這樣,我們可以獲取(qu)動(dòng)態(tài)(′?ω?`)加載的圖片,我們需(′;д;`)要安裝Selenium庫:
pip install selenium
接下來(lái),我們需要??下載瀏覽器驅動(dòng)程序(如ChromeDriver),并將其添加到系統路徑中,我們可以使用Selenium庫打開(kāi)網(wǎng)頁(yè),定位到img┐(′д`)┌標簽,并獲取圖片鏈接,Se(′ω`)lenium相對較慢,因為它需要加載整個(gè)網(wǎng)頁(yè),它通常不適用于抓取大??量圖片。
如何保存獲取到的圖片???
我們可以使用PIL庫(P??ython?? Imaging Library)或OpenCV庫將獲取到的圖片保存到本地,我們需要安裝PIL庫或OpenCV庫:
pip install pillow open=""cv-python
接下來(lái),我們可以使用以下代碼將圖片保存到本地:
from PIL import Imageimport requestsfrom io import BytesIOfrom?? bs4 import Be??auti(′▽?zhuān)?fulSoヾ(^-^)ノupimport cv2 as cv2import numpy as npfrom ur(′ω`*)llib.parse import urljoinfrom pathlib import Pathimport osurl = 'https(′?ω?`)://www.example.com'response = requests.get(url)soup = BeautifulSoup(respons??e.??te(???)xt, 'html.parser')img_tags = soup.find_all('img')save_path = 'images' 設置圖片保存路徑os.makedirs(save_pat(T_T)h, exis(′?`)t_ok=True) 如果目錄不存在,則創(chuàng )建目錄foヽ(′▽?zhuān)?ノr img in img_tags: img_url = img['src'] 獲取圖片鏈接 img_name = os.path.basename((′?_?`)img_url) 獲取圖片文件名(不包括擴展名) img_data = requests.get(img_url).content 獲取圖片數據 img_np = np.array(Image.open="open"(BytesIO(img_data))) 將圖片數據轉換為NumPy數組?? img_np = cv2.cvtColor(img_np, cv2.COLOR_BGR2RGB) 將圖片從BGR格式轉換為RGB格式(可選) Path(save_path, img_name).save(f'{ save_path}/{ img_nam??e}') 將圖片保存到指定路徑(可選)相關(guān)問(wèn)題與解答
1、如何處理跨域請求?
答:如果網(wǎng)站使用了CORS(跨域資源共享)策略,我們可以直接使用requests庫獲取圖片;否則,我們需要在目標網(wǎng)站上設置允許跨域請求,我們還可以使用代理IP繞過(guò)地域限制,具體方法如下:

