目录
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©right=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©right=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自动下载想要的图片篇结束,欢迎去我的主页查看其它关于技术的文章~~~