最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的圖片爬蟲(chóng)

 更新時(shí)間:2024年02月27日 08:56:13   作者:GT開(kāi)發(fā)算法工程師  
在本文中,我們將學(xué)習(xí)如何使用Python創(chuàng)建一個(gè)簡(jiǎn)單的圖片爬蟲(chóng),我們將利用requests庫(kù)來(lái)發(fā)送HTTP請(qǐng)求,BeautifulSoup庫(kù)來(lái)解析HTML頁(yè)面,以及os和shutil庫(kù)來(lái)下載和保存圖片,通過(guò)這個(gè)教程,你將學(xué)會(huì)如何爬取網(wǎng)頁(yè)上的圖片并保存到本地,需要的朋友可以參考下

引言:

在本文中,我們將學(xué)習(xí)如何使用Python創(chuàng)建一個(gè)簡(jiǎn)單的圖片爬蟲(chóng)。

我們將利用requests庫(kù)來(lái)發(fā)送HTTP請(qǐng)求,BeautifulSoup庫(kù)來(lái)解析HTML頁(yè)面,以及osshutil庫(kù)來(lái)下載和保存圖片。通過(guò)這個(gè)教程,你將學(xué)會(huì)如何爬取網(wǎng)頁(yè)上的圖片并保存到本地。

一、準(zhǔn)備工作

在開(kāi)始之前,請(qǐng)確保你已經(jīng)安裝了Python,并且安裝了以下庫(kù):

  • requests:用于發(fā)送HTTP請(qǐng)求
  • beautifulsoup4:用于解析HTML頁(yè)面

你可以使用以下命令來(lái)安裝這些庫(kù):

pip install requests beautifulsoup4

二、代碼實(shí)現(xiàn)

import os  
import requests  
from bs4 import BeautifulSoup  
from urllib.parse import urljoin  
from urllib.request import urlretrieve  
  
def download_images(url, save_dir):  
    """  
    下載指定網(wǎng)頁(yè)上的所有圖片并保存到本地文件夾  
  
    :param url: 目標(biāo)網(wǎng)頁(yè)的URL  
    :param save_dir: 圖片保存的目錄  
    """  
    # 創(chuàng)建保存圖片的目錄  
    if not os.path.exists(save_dir):  
        os.makedirs(save_dir)  
  
    # 發(fā)送HTTP請(qǐng)求  
    response = requests.get(url)  
    response.raise_for_status()  # 如果請(qǐng)求失敗,拋出異常  
  
    # 使用BeautifulSoup解析頁(yè)面  
    soup = BeautifulSoup(response.text, 'html.parser')  
  
    # 查找所有的圖片鏈接  
    image_links = soup.find_all('img')  
  
    # 下載并保存圖片  
    for img in image_links:  
        img_url = img.get('src')  
  
        # 如果圖片鏈接是相對(duì)路徑,則將其轉(zhuǎn)換為絕對(duì)路徑  
        if not img_url.startswith(('http://', 'https://')):  
            img_url = urljoin(url, img_url)  
  
        # 下載圖片  
        img_name = os.path.join(save_dir, img_url.split('/')[-1])  
        urlretrieve(img_url, img_name)  
  
        print(f"Downloaded: {img_name}")  
  
# 使用示例  
url = "https://example.com"  # 替換為你要爬取的網(wǎng)頁(yè)的URL  
save_dir = "images"  # 圖片保存的目錄  
download_images(url, save_dir)

三、代碼解析

  • 導(dǎo)入庫(kù):首先,我們導(dǎo)入了所需的庫(kù),包括os、requests、BeautifulSoup、urllib.parse和urllib.request。
  • 定義函數(shù):我們定義了一個(gè)名為download_images的函數(shù),它接受兩個(gè)參數(shù):url(目標(biāo)網(wǎng)頁(yè)的URL)和save_dir(圖片保存的目錄)。
  • 創(chuàng)建保存目錄:如果指定的保存目錄不存在,我們將創(chuàng)建它。
  • 發(fā)送HTTP請(qǐng)求:使用requests.get方法發(fā)送HTTP請(qǐng)求,并使用response.raise_for_status檢查請(qǐng)求是否成功。
  • 解析頁(yè)面:使用BeautifulSoup解析HTML頁(yè)面,并查找所有的<img>標(biāo)簽,以獲取圖片鏈接。
  • 下載并保存圖片:遍歷每個(gè)圖片鏈接,將其轉(zhuǎn)換為絕對(duì)路徑(如果需要),并使用urlretrieve方法下載圖片然后,將圖片保存到指定的目錄,并打印出下載的文件名。
  • 使用示例:最后,我們提供了一個(gè)使用示例,包括目標(biāo)網(wǎng)頁(yè)的URL和圖片保存的目錄。

四、注意事項(xiàng)

  • 在使用爬蟲(chóng)時(shí),請(qǐng)確保遵守目標(biāo)網(wǎng)站的robots.txt文件和使用條款,并尊重他人的版權(quán)和隱私。
  • 不要對(duì)網(wǎng)站造成過(guò)大的壓力或進(jìn)行惡意爬取。
  • 可以根據(jù)需要進(jìn)一步擴(kuò)展此代碼,例如增加錯(cuò)誤處理、添加代理支持、限制并發(fā)請(qǐng)求數(shù)、使用異步IO等。

通過(guò)本文的學(xué)習(xí),你已經(jīng)掌握了如何使用Python創(chuàng)建一個(gè)簡(jiǎn)單的圖片爬蟲(chóng)。你可以根據(jù)自己的需求進(jìn)一步擴(kuò)展和優(yōu)化這個(gè)爬蟲(chóng)。記得在使用爬蟲(chóng)時(shí)要遵守相關(guān)規(guī)定和法律法規(guī),尊重他人的權(quán)益。

以上就是使用python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的圖片爬蟲(chóng)的詳細(xì)內(nèi)容,更多關(guān)于python圖片爬蟲(chóng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python利用arcpy模塊實(shí)現(xiàn)柵格的創(chuàng)建與拼接

    Python利用arcpy模塊實(shí)現(xiàn)柵格的創(chuàng)建與拼接

    這篇文章主要為大家詳細(xì)介紹了如何基于Python語(yǔ)言arcpy模塊,實(shí)現(xiàn)柵格影像圖層建立與多幅遙感影像數(shù)據(jù)批量拼接(Mosaic)的操作,感興趣的可以了解一下
    2023-02-02
  • tensorflow實(shí)現(xiàn)加載mnist數(shù)據(jù)集

    tensorflow實(shí)現(xiàn)加載mnist數(shù)據(jù)集

    這篇文章主要為大家詳細(xì)介紹了tensorflow實(shí)現(xiàn)加載mnist數(shù)據(jù)集,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 詳解python?sklearn中的數(shù)據(jù)預(yù)處理方法

    詳解python?sklearn中的數(shù)據(jù)預(yù)處理方法

    本篇文章主要講解Python的sklearn庫(kù)中常用的數(shù)據(jù)預(yù)處理方法,主要介紹工具中的內(nèi)容,即該庫(kù)中的相關(guān)方法包含的常用接口和基本使用,希望對(duì)大家有所幫助
    2023-08-08
  • Python 內(nèi)置函數(shù)速查表一覽

    Python 內(nèi)置函數(shù)速查表一覽

    這篇文章主要介紹了Python 內(nèi)置函數(shù)速查表,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Python Datetime模塊和Calendar模塊用法實(shí)例分析

    Python Datetime模塊和Calendar模塊用法實(shí)例分析

    這篇文章主要介紹了Python Datetime模塊和Calendar模塊用法,結(jié)合實(shí)例形式分析了Python日期時(shí)間及日歷相關(guān)的Datetime模塊和Calendar模塊原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-04-04
  • 如何從Python的cmd中獲得.py文件參數(shù)

    如何從Python的cmd中獲得.py文件參數(shù)

    這篇文章主要介紹了如何從Python的cmd中獲得.py文件參數(shù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python合并多個(gè)excel的詳細(xì)過(guò)程

    python合并多個(gè)excel的詳細(xì)過(guò)程

    合并需求很多,常見(jiàn)的有相同數(shù)據(jù)結(jié)構(gòu),按行進(jìn)行縱向拼接,下面這篇文章主要給大家介紹了關(guān)于python合并多個(gè)excel的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • python正則表達(dá)式re.search()的基本使用教程

    python正則表達(dá)式re.search()的基本使用教程

    正則表達(dá)式是我們?nèi)粘i_(kāi)發(fā)中必然會(huì)遇到的,下面這篇文章主要介紹了python正則表達(dá)式re.search()的基本使用教程,需要的朋友可以參考下
    2021-05-05
  • 分享一下Python數(shù)據(jù)分析常用的8款工具

    分享一下Python數(shù)據(jù)分析常用的8款工具

    Python是數(shù)據(jù)處理常用工具,可以處理數(shù)量級(jí)從幾K至幾T不等的數(shù)據(jù),具有較高的開(kāi)發(fā)效率和可維護(hù)性,還具有較強(qiáng)的通用性和跨平臺(tái)性,這里就為大家分享幾個(gè)不錯(cuò)的數(shù)據(jù)分析工具,需要的朋友可以參考下
    2018-04-04
  • Python 自制簡(jiǎn)單版《我的世界》的詳細(xì)過(guò)程

    Python 自制簡(jiǎn)單版《我的世界》的詳細(xì)過(guò)程

    這篇文章主要介紹了教你用 Python 自制簡(jiǎn)單版《我的世界》,接下來(lái),我們就帶你運(yùn)行這個(gè)項(xiàng)目,并對(duì)這個(gè)開(kāi)源的小游戲做一下簡(jiǎn)單的更改,讓它變成“你的”世界
    2021-11-11

最新評(píng)論

雷山县| 土默特右旗| 宜丰县| 南汇区| 武威市| 东乡族自治县| 靖宇县| 湖南省| 科尔| 满洲里市| 胶南市| 宁都县| 托克托县| 阿勒泰市| 札达县| 北川| 文昌市| 渑池县| 安平县| 丹寨县| 漠河县| 疏勒县| 广汉市| 烟台市| 梁平县| 乌拉特中旗| 安泽县| 扶风县| 池州市| 澄迈县| 乃东县| 于田县| 监利县| 洪雅县| 和政县| 南平市| 洛宁县| 来宾市| 织金县| 兴海县| 子洲县|