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

Python使用Selenium批量自動(dòng)化獲取并下載圖片的方法

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

Selenium批量自動(dòng)化獲取并下載圖片

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

一、準(zhǔn)備工作

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

pip install selenium

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

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

from selenium import webdriver  
from PIL import Image  
import io

二、編寫(xiě)代碼

啟動(dòng)瀏覽器驅(qū)動(dòng):創(chuàng)建一個(gè)瀏覽器驅(qū)動(dòng)實(shí)例,并打開(kāi)一個(gè)網(wǎng)頁(yè)。這里以Chrome為例:

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

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

images = driver.find_elements_by_css_selector('img')

下載圖片:對(duì)于每個(gè)找到的圖片元素,提取其src屬性,然后使用PIL庫(kù)下載圖片。這里是一個(gè)簡(jiǎn)單的示例:

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ū)動(dòng):完成圖片下載后,關(guān)閉瀏覽器驅(qū)動(dòng)。

driver.quit()

三、注意事項(xiàng)

跨域問(wèn)題:如果圖片來(lái)自于不同的域,你可能會(huì)遇到跨域問(wèn)題。在這種情況下,你需要處理瀏覽器的同源策略限制。一種解決方法是使用瀏覽器插件或服務(wù)來(lái)允許跨域請(qǐng)求。
圖片大小和分辨率:在下載圖片時(shí),你可能需要調(diào)整圖片的大小和分辨率以滿(mǎn)足你的需求。你可以在保存圖片時(shí)使用PIL庫(kù)的resize方法來(lái)調(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批量自動(dòng)化獲取并下載圖片的方法的文章就介紹到這了,更多相關(guān)Python Selenium獲取并下載圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

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

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

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

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

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

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

    簡(jiǎn)單示例解析python爬蟲(chóng)IP的使用(小白篇)

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

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

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

    python字符串常用方法

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

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

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

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

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

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

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

最新評(píng)論