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

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

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

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

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

一、準(zhǔn)備工作

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

pip install selenium

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

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

from selenium import webdriver  
from PIL import Image  
import io

二、編寫代碼

啟動(dòng)瀏覽器驅(qū)動(dòng):創(chuàng)建一個(gè)瀏覽器驅(qū)動(dòng)實(shí)例,并打開一個(gè)網(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')

下載圖片:對(duì)于每個(gè)找到的圖片元素,提取其src屬性,然后使用PIL庫下載圖片。這里是一個(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)

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

相關(guān)文章

最新評(píng)論

利津县| 垦利县| 宜君县| 嘉禾县| 平江县| 正安县| 五常市| 和田市| 安丘市| 礼泉县| 赤峰市| 通化市| 庐江县| 临澧县| 枣阳市| 台北县| 涟源市| 永宁县| 大名县| 吴旗县| 翁牛特旗| 红原县| 兴文县| 封丘县| 依兰县| 齐齐哈尔市| 广安市| 营口市| 阿克| 霍林郭勒市| 兰考县| 休宁县| 阜阳市| 鄂伦春自治旗| 乌拉特后旗| 疏勒县| 广昌县| 盐源县| 辽阳市| 建昌县| 万安县|