根据UIL下载图片/视频、根据URL自动下载图片/视频、GUI自动下载想要的图片

目录

1,根据UIL下载图片/视频

2,根据URL自动下载图片/视频

3、GUI自动下载想要的图片

①点击下载按钮,进行挨个下载

②右击保存进行下载图片

4、图片或视频URL批量放入浏览器页面上


1,根据UIL下载图片/视频

复制代码
def downForInterface(file_path):
    count = 1
    value_rows = []
    with open(file_path, encoding='UTF-8') as file:
        f_csv = csv.reader(file)
        for r in f_csv:
            value_rows.append(r)
    for file_path in value_rows:
        cunmulu = ''
        if '.' in file_path[0]:
            print(cunmulu + str(random.random()) + '.' + file_path[0].split('.')[-1])
            urllib.request.urlretrieve(file_path[0], cunmulu + str(count) + '.' + file_path[0].split('.')[-1])
        else:
            print(cunmulu + str(random.random()) + '.mp4')
            urllib.request.urlretrieve(file_path[0], cunmulu + str(count) + '.mp4')
        count = count + 1
复制代码
downForInterface('image_or_video_url.csv')

效果如如下:

复制代码
image_or_video_url.csv文件内容案例如下:
复制代码
http://p8.itc.cn/images01/20201106/58779d3abcf040429748ebef7c25b4bf.jpeg
http://p9.itc.cn/images01/20201106/00bf12aff4c54f16b628097195a9bd6d.jpeg
http://p8.itc.cn/images01/20201106/e4bd1a9946804c77b8ca38cb16494e5f.jpeg
https://vd3.bdstatic.com/mda-nadbjpk0hnxwyndu/720p/h264_delogo/1642148105214867253/mda-nadbjpk0hnxwyndu.mp4
https://vd4.bdstatic.com/mda-pcraqjsn1bz1q2q0/sc/cae_h264/1679816509746997780/mda-pcraqjsn1bz1q2q0.mp4

2,根据URL自动下载图片/视频

python 复制代码
import time
import pyautogui
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
class SaveImageOrVideo():
    def __init__(self):
        self.driver = webdriver.Chrome()

    def saveImage(self,file_path):
        a = 0
        with open(file_path, "r") as file:
            try:
                for url in file.readlines():
                        a += 1
                        print(url)
                        self.driver.get(url)
                        time.sleep(2)
                        if(url.split('.')[-1].strip() not in 'mp4wmvrmaviflvwebmwavrmvbmpgmov'):
                            image_element = self.driver.find_element(By.XPATH,'/html/body/img')
                        else:
                            image_element = self.driver.find_element(By.XPATH,'/html/body/video')
                        action = ActionChains(self.driver).move_to_element(image_element)
                        action.context_click(image_element)
                        action.perform()
                        pyautogui.typewrite(['v'])
                        time.sleep(4)
                        pyautogui.typewrite(['enter'])
                        print("执行了{0}次,下载了{1}个文件".format(a, a))
                time.sleep(500)
            except Exception as err:
                print('An exception happened:' + str(err))
            finally:
                self.driver.quit()
if __name__ == '__main__':
    saveImageOrVideo = SaveImageOrVideo()
    saveImageOrVideo.saveImage("image_or_video_url.csv")

效果图如下:

image_or_video_url.csv内容案例如下

http://p8.itc.cn/images01/20201106/58779d3abcf040429748ebef7c25b4bf.jpeg http://p9.itc.cn/images01/20201106/00bf12aff4c54f16b628097195a9bd6d.jpeg http://p8.itc.cn/images01/20201106/e4bd1a9946804c77b8ca38cb16494e5f.jpeg https://vd3.bdstatic.com/mda-nadbjpk0hnxwyndu/720p/h264_delogo/1642148105214867253/mda-nadbjpk0hnxwyndu.mp4 https://vd4.bdstatic.com/mda-pcraqjsn1bz1q2q0/sc/cae_h264/1679816509746997780/mda-pcraqjsn1bz1q2q0.mp4

3、GUI自动下载想要的图片

①点击下载按钮,进行挨个下载
python 复制代码
#左键点击下载图片
import time
from selenium import webdriver
from selenium.webdriver.common.by import By

def downImageLifeClick(keyWord,count):
        before_time = time.time()
        keyWord = keyWord
        prefixUrl = "https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word="
        suffixUrl = "&step_word=&hs=2&pn=1&spn=0&di=13200&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=undefined&cs=113014737%2C3445157660&os=2351244306%2C2367448695&simid=3050896469%2C3730470527&adpicid=0&lpn=0&ln=362&fr=&fmq=1570618921319_R&fm=&ic=undefined&s=undefined&hd=undefined&latest=undefined&copyright=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=0&oriquery=&objurl=http%3A%2F%2Fgss0.baidu.com%2F-vo3dSag_xI4khGko9WTAnF6hhy%2Fzhidao%2Fpic%2Fitem%2F0df431adcbef7609968039362cdda3cc7dd99e94.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bp7xt_z%26e3Bv54_z%26e3BvgAzdH3Fetjof-8nbml9nnclam-8nbml9nnclamdbdd_z%26e3Bip4s&gsm=&rpstart=0&rpnum=0&islist=&querylist=&force=undefined"
        driver = webdriver.Chrome()
        driver.get(
           prefixUrl+keyWord+suffixUrl)
        try:
            for i in range(0, count):
                #下载操作
                driver.maximize_window()
                down = driver.find_element(By.XPATH,'//*[@id="toolbar"]/span[7]')
                down.click()
                time.sleep(1)

                #翻页操作
                image = driver.find_element(By.XPATH,'//*[@id="container"]/span[2]/span')
                image.click()
                time.sleep(1)
                print("已下载%d张图片" % (i + 1))
        except Exception as e:
            print(e)
            time.sleep(10000)
        finally:
            driver.quit()
        after_time = time.time()
        print('您一共花费了%d秒' % (after_time - before_time))

downImageLifeClick('古怪搞笑图',5)

效果图如下:

②点击右键保存,进行挨个下载
python 复制代码
#pip install pypiwin32 -i https://pypi.douban.com/simple/
import win32api
import win32con
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
#右键保存下载图片
from selenium.webdriver.common.by import By


def downImageRightClick(keyWord,count):
    before_time = time.time()
    keyWord = keyWord
    prefixUrl = "https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word="
    suffixUrl = "&step_word=&hs=2&pn=1&spn=0&di=13200&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=undefined&cs=113014737%2C3445157660&os=2351244306%2C2367448695&simid=3050896469%2C3730470527&adpicid=0&lpn=0&ln=362&fr=&fmq=1570618921319_R&fm=&ic=undefined&s=undefined&hd=undefined&latest=undefined&copyright=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=0&oriquery=&objurl=http%3A%2F%2Fgss0.baidu.com%2F-vo3dSag_xI4khGko9WTAnF6hhy%2Fzhidao%2Fpic%2Fitem%2F0df431adcbef7609968039362cdda3cc7dd99e94.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bp7xt_z%26e3Bv54_z%26e3BvgAzdH3Fetjof-8nbml9nnclam-8nbml9nnclamdbdd_z%26e3Bip4s&gsm=&rpstart=0&rpnum=0&islist=&querylist=&force=undefined"
    driver = webdriver.Chrome()
    VK_CODE = {'enter': 0x0D, 'down_arrow': 0x28}
    driver.get(
       prefixUrl+keyWord+suffixUrl)
    try:
        for i in range(0,count):
            image = driver.find_element(By.XPATH,'//*[@id="srcPic"]/img')
            action = ActionChains(driver).move_to_element(image)
            # ActionChains(driver).context_click(image).perform()
            action.context_click(image).perform()
            time.sleep(1)
            win32api.keybd_event(86, 0, 0, 0)
            win32api.keybd_event(86, 0, win32con.KEYEVENTF_KEYUP, 0)
            time.sleep(2)
            win32api.keybd_event(VK_CODE['enter'], 0, 0, 0)
            win32api.keybd_event(VK_CODE['enter'], 0, win32con.KEYEVENTF_KEYUP, 0)
            print("已下载%d张图片" % (i + 1))
            time.sleep(1)
            driver.find_element(By.XPATH,'//*[@id="container"]/span[2]').click()
            time.sleep(1)
    except Exception as e:
        print(e)
    finally:
        driver.quit()
    after_time = time.time()
    print('您一共花费了%d秒' % (after_time - before_time))

downImageRightClick('清凉图',5)

效果图如下:

4、图片或视频URL批量放入浏览器页面上

复制代码
import time
from selenium import webdriver

def new_table():
    driver = webdriver.Chrome()
    try:
        driver.maximize_window()
        driver.delete_all_cookies()
        fo = open("image_or_video_url.csv", "r")
        for line in fo.readlines():
            if len(line) > 0:
                driver.get(line)
                driver.execute_script("window.open('');")  # 打开新的页面
                current_window = driver.current_window_handle
                handles = driver.window_handles
                # for handle in handles:
                #     if current_window != handle:
                #         driver.switch_to.window(handle) #耗时 50 185
                # driver.switch_to.window(handles[len(handles)-1]) #耗时 50 101
                driver.switch_to.window(handles[-1])  # 耗时 50 102
        fo.close()
        time.sleep(500)
    except Exception as e:
        print(e)
    finally:
        driver.quit()

new_table()

效果图如下:

根据UIL下载图片/视频、根据URL自动下载图片/视频、GUI自动下载想要的图片篇结束,欢迎去我的主页查看其它关于技术的文章~~~

相关推荐
秃头佛爷9 分钟前
Python学习大纲总结及注意事项
开发语言·python·学习
待磨的钝刨10 分钟前
【格式化查看JSON文件】coco的json文件内容都在一行如何按照json格式查看
开发语言·javascript·json
深度学习lover1 小时前
<项目代码>YOLOv8 苹果腐烂识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·苹果腐烂识别
XiaoLeisj2 小时前
【JavaEE初阶 — 多线程】单例模式 & 指令重排序问题
java·开发语言·java-ee
API快乐传递者2 小时前
淘宝反爬虫机制的主要手段有哪些?
爬虫·python
励志成为嵌入式工程师3 小时前
c语言简单编程练习9
c语言·开发语言·算法·vim
捕鲸叉4 小时前
创建线程时传递参数给线程
开发语言·c++·算法
A charmer4 小时前
【C++】vector 类深度解析:探索动态数组的奥秘
开发语言·c++·算法
Peter_chq4 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
阡之尘埃4 小时前
Python数据分析案例61——信贷风控评分卡模型(A卡)(scorecardpy 全面解析)
人工智能·python·机器学习·数据分析·智能风控·信贷风控