欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用Selenium批量自動化獲取并下載圖片的方法

 更新時間:2024年11月21日 10:56:42   作者:蕭鼎  
在現(xiàn)代的Web開發(fā)中,自動化測試和數(shù)據(jù)抓取已經(jīng)成為不可或缺的一部分,Selenium作為一款強大的自動化測試工具,可以用于批量獲取網(wǎng)頁上的圖片,所以本文給大家介紹了Python如何使用Selenium批量自動化獲取并下載圖片的方法

Selenium批量自動化獲取并下載圖片

在現(xiàn)代的Web開發(fā)中,自動化測試和數(shù)據(jù)抓取已經(jīng)成為不可或缺的一部分。Selenium作為一款強大的自動化測試工具,不僅可以用于測試Web應(yīng)用,還可以用于批量獲取網(wǎng)頁上的圖片。本文將介紹如何使用Selenium批量自動化獲取并下載圖片。

一、準(zhǔn)備工作

安裝Selenium:首先,你需要在你的系統(tǒng)中安裝Selenium。你可以使用pip來安裝:

pip install selenium

下載WebDriver:Selenium需要與WebDriver配合使用,WebDriver是一個瀏覽器驅(qū)動,用于執(zhí)行瀏覽器操作。你需要根據(jù)你的瀏覽器類型下載對應(yīng)的WebDriver。例如,如果你使用的是Chrome,你需要下載ChromeDriver。

導(dǎo)入必要的庫:在Python腳本中,你需要導(dǎo)入Selenium的庫以及用于處理圖片的庫(如PIL)。

from selenium import webdriver  
from PIL import Image  
import io

二、編寫代碼

啟動瀏覽器驅(qū)動:創(chuàng)建一個瀏覽器驅(qū)動實例,并打開一個網(wǎng)頁。這里以Chrome為例:

driver = webdriver.Chrome('path/to/chromedriver')  
driver.get('http://example.com')

查找圖片元素:使用Selenium的定位 器(locators)來查找頁面上的圖片元素。你可以使用CSS選擇器、XPath等來定位圖片元素。例如,使用CSS選擇器定位所有的img標(biāo)簽:

images = driver.find_elements_by_css_selector('img')

下載圖片:對于每個找到的圖片元素,提取其src屬性,然后使用PIL庫下載圖片。這里是一個簡單的示例:

for image in images:  
    image_url = image.get_attribute('src')  
    response = driver.execute_script("return fetch('" + image_url + "');")  
    image_data = response.content  
    image = Image.open(io.BytesIO(image_data))  
    image.save(image_url.split('/')[-1])  # 將圖片保存到本地,文件名保持不變

關(guān)閉瀏覽器驅(qū)動:完成圖片下載后,關(guān)閉瀏覽器驅(qū)動。

driver.quit()

三、注意事項

跨域問題:如果圖片來自于不同的域,你可能會遇到跨域問題。在這種情況下,你需要處理瀏覽器的同源策略限制。一種解決方法是使用瀏覽器插件或服務(wù)來允許跨域請求。
圖片大小和分辨率:在下載圖片時,你可能需要調(diào)整圖片的大小和分辨率以滿足你的需求。你可以在保存圖片時使用PIL庫的resize方法來調(diào)整圖片大小。例如:image.resize((width, height))。

完整例子:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import requests
from io import BytesIO
from PIL import Image

def spider(url):
    driver = webdriver.Chrome()
    driver.get(url)
    driver.maximize_window()  # 窗口最大化
    time.sleep(30)
    a=1
    for j in range(2,25):
        try:
            try:
                for i in range(1,100):
                    a+=1
                    image_url=driver.find_element(By.XPATH,'//*[@id="sobey_editor_content"]/p/img[{}]'.format(i)).get_attribute("src")
                    print(image_url)
                    #//*[@id="root"]/div/div/div/div[1]/div/div[2]/div/div[3]/div/div/div/div[4]
                    #//*[@id="root"]/div/div/div/div[1]/div/div[2]/div/div[3]/div/div/div/div[23]
                    response = requests.get(image_url)
                    image_data = BytesIO(response.content)
                    image = Image.open(image_data)
                    image.save("image/{}.jpg".format(a))
                    print("{}下載成功".format(a))
            except:
                print("已下載完")
            driver.find_element(By.XPATH,'//*[@id="root"]/div/div/div/div[1]/div/div[2]/div/div[3]/div/div/div/div[{}]'.format(j+1)).click()
            time.sleep(0.5)
        except:
            print("未能下載。")
            pass
    driver.quit()
    quit()

if __name__ == '__main__':
    spider('https://yunquer.cn/web/#/Previewtextbook?contentId_=e8e86045f7a441e5828da5c3b21bcacc&uip=1')

到此這篇關(guān)于Python使用Selenium批量自動化獲取并下載圖片的方法的文章就介紹到這了,更多相關(guān)Python Selenium獲取并下載圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • OpenCV圖像處理之圖像的二值化解讀

    OpenCV圖像處理之圖像的二值化解讀

    這篇文章主要介紹了OpenCV圖像處理之圖像的二值化解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • pytorch:實現(xiàn)簡單的GAN示例(MNIST數(shù)據(jù)集)

    pytorch:實現(xiàn)簡單的GAN示例(MNIST數(shù)據(jù)集)

    今天小編就為大家分享一篇pytorch:實現(xiàn)簡單的GAN示例(MNIST數(shù)據(jù)集),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 詳解vscode實現(xiàn)遠(yuǎn)程linux服務(wù)器上Python開發(fā)

    詳解vscode實現(xiàn)遠(yuǎn)程linux服務(wù)器上Python開發(fā)

    這篇文章主要介紹了vscode實現(xiàn)遠(yuǎn)程linux服務(wù)器上Python開發(fā),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 如何使用Python獲取昨天的日期

    如何使用Python獲取昨天的日期

    Python 是一種高級語言,可用于數(shù)據(jù)科學(xué)和機器學(xué)習(xí),以使用 Python 的數(shù)據(jù)結(jié)構(gòu)訓(xùn)練 AI,它用于編寫各種應(yīng)用程序,從 Web 和桌面到操作系統(tǒng)級程序,這篇文章主要介紹了在 Python 中獲取昨天的日期,需要的朋友可以參考下
    2023-05-05
  • 簡單示例解析python爬蟲IP的使用(小白篇)

    簡單示例解析python爬蟲IP的使用(小白篇)

    這篇文章主要為大家通過簡單示例解析python爬蟲IP的使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 利用Python實現(xiàn)在PDF文檔中插入文字水印

    利用Python實現(xiàn)在PDF文檔中插入文字水印

    在傳播PDF文檔的過程中,如何有效地保護文檔的版權(quán)和所有權(quán),防止非法復(fù)制和濫用,成為了一個不可忽視的問題,所以給PDF文檔添加水印便成了一種行之有效的保護手,本文將展示如何使用Python在PDF文檔中插入文字水印,實現(xiàn)高效的PDF文檔處理,需要的朋友可以參考下
    2024-04-04
  • python字符串常用方法

    python字符串常用方法

    這篇文章主要介紹了python字符串常用方法,find、count、replace、split、startswith、endswith等多種方法,需要的朋友可以參考一下文章得具體內(nèi)容,希望對你有所幫助
    2021-10-10
  • wxpython 學(xué)習(xí)筆記 第一天

    wxpython 學(xué)習(xí)筆記 第一天

    學(xué)習(xí)wxpython的朋友,可以看下,了解下wxpython
    2009-03-03
  • 利用Python+PyQt5實現(xiàn)簡易瀏覽器的實戰(zhàn)記錄

    利用Python+PyQt5實現(xiàn)簡易瀏覽器的實戰(zhàn)記錄

    這篇文章主要給大家介紹了關(guān)于如何利用Python+PyQt5實現(xiàn)簡易瀏覽器的相關(guān)資料,Qt 的主要優(yōu)勢是可以開發(fā)跨平臺的圖形界面程序,基于 Qt 的應(yīng)用能夠借助于各平臺的原生性在不同類的設(shè)備上運行,而無須修改任何代碼庫,需要的朋友可以參考下
    2021-07-07
  • Python學(xué)習(xí)之time模塊的基本使用

    Python學(xué)習(xí)之time模塊的基本使用

    這篇文章主要給大家介紹了關(guān)于Python學(xué)習(xí)之time模塊基本使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評論