admin管理员组

文章数量:1581074

背景:
作为测试人员和开发人员,我们时时的需要从网上下载一些图片用于上传到我们的系统中,或者使用我们代码对图片进行分析时,都需要我们能从网上下载图片,如果有一个程序代码能解放我们的双手,自动一张一张图片的下载,那么将是很nice的事。

目的:
使用selenium的GUI自动化来下载图片或使用requests接口进行获取图片(这个方法无法在csdn上发布,暂不考虑)

Python+Selenium GUI自动化下载自己需要的图片

思路:模拟手动动作从百度页面点击下载和点击翻页,然后下载好的图片会放在电脑的下载文件夹里
效果如下:

 

代码如下:

import os
import sys
from selenium import webdriver
import time
'''本类用于测试人员从网上下载测试需要用的素材
思路:模拟手动动作从百度图片页面点击下载和点击翻页
'''
class DownImage():
    def __init__(self,keyWord):
        prefixUrl = "https://image.baidu/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%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"
        if getattr(sys,'frozen',False):
            chromedriver_path= os.path.join(sys._MEIPASS,'chromedriver.exe')
            driver = webdriver.Chrome(chromedriver_path)
        else:
            self.driver = webdriver.Chrome()
        self.driver.get(prefixUrl+keyWord+suffixUrl)

    # 定义翻页操作
    def up_page(self):
        image = self.driver.find_element_by_xpath('//*[@id="container"]/span[2]/span')#下一秒元素
        image.click()
        time.sleep(1)

    # 定义下载图片操作
    def download_pictures(self):
        down = self.driver.find_element_by_xpath('//*[@id="toolbar"]/span[7]/i')#下载元素
        down.click()
        time.sleep(1)

if __name__ == '__main__':
    number = 10
    # 设置下载内容
    keyWord = '720*1280性感美女'
    downImage = DownImage(keyWord)
    for i in range(0, number):
        downImage.up_page()
        downImage.download_pictures()
        print("已下载%d张图片" % (i + 1))

自动化下载图片篇结束,欢迎去我的主页查看其它技术类文章 ~ ~

本文标签: 图片seleniumGUI