百度 图片 下载

尐呆瓜 2020-8-5 1118

 ( 新人)   学习了几天   后 又参考了   批量下载图片的视频  测试了 几次 没有 成功 ;

  无奈 。。。又 琢磨了 几天   。。。。。

  写下 几句代码 。。。。

   大佬 们 来些 意见  

   谢谢 指点 。


百度自动下载指定关键字图片   视频

https://www.bilibili.com/video/BV1Mf4y1d7pv/

----------------------------------------------------------------------------------------------------------------------

_百度 图片 下载

//  复制 代码后 可按 上图 对照 每行首 对齐 (因发现复制到软件里 每行的代码会乱掉) 


//  Google Chrome 浏览器,打开百度  输入框写入图片搜索关键字 ,确定  自动下载 图片 

dim xinxi = "",iRet = "",bRet = "",sRet = "",hWeb = "",arrayn = "",dTime = "",sRetime = 

"",arrayData = ""

Function yi

  hWeb = WebBrowser.Create("chrome","https://wwww.baidu.com/",30000,

{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200,"sBrowserPath":"","sStartArgs":"

"})

  #icon("@res:default.png")

  Window.Show({"wnd":[{"app":"chrome","cls":"Chrome_WidgetWin_1","title":"*"}]},"max")

  bRet = File.PathExists(@res"tu")

    If bRet

     Else

        File.CreateFolder(@res"tu")

    End If

  xinxi  = Dialog.InputBox("","  图片关键词  ","",false)

    If xinxi = "" or xinxi = null

        exit()

     Else

    End If

End Function

Function er

    #icon("@res:default.png")

    UiElement.SetValue({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},

{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":

[{"tag":"INPUT","id":"kw"}]},xinxi,

{"bContinueOnError":false,"iDelayAfter":100,"iDelayBefore":100})

    #icon("@res:default.png")

    Mouse.Action({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},

{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":

[{"tag":"INPUT","id":"su"}]},"left","click",10000,

{"bContinueOnError":false,"iDelayAfter":100,"iDelayBefore":100,"bSetForeground":true,"sCursorPo

sition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":

[],"sSimulate":"simulate"})

    #icon("@res:default.png")

    iRet = WebBrowser.WaitPage(hWeb,{"wnd":

[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},

{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":

[{"tag":"A","parentid":"1","aaname":"*"}]},60000,

{"bContinueOnError":false,"iDelayAfter":100,"iDelayBefore":100})

    #icon("@res:default.png")

    sRet = UiElement.GetAttribute({"wnd":

[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},

{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":

[{"tag":"A","parentid":"s_tab","aaname":"图片"}]},"href",

{"bContinueOnError":false,"iDelayAfter":100,"iDelayBefore":100})

    #icon("@res:default.png")

    iRet = WebBrowser.GoURL(hWeb,sRet,true,"",30000,

{"bContinueOnError":false,"iDelayAfter":100,"iDelayBefore":100})

End Function

Function san

  arrayData = UiElement.DataScrap({"html":[{"id":"imgid","tag":"DIV"}],"wnd":

[{"app":"chrome","cls":"Chrome_WidgetWin_1","title":"*"},

{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}]},{"Columns":[{"props":

["url"],"selecors":[{"index":0,"prefix":"","tag":"div","value":"div"},

{"index":0,"prefix":">","tag":"ul","value":"ul"},

{"index":0,"prefix":">","tag":"li","value":"li"},

{"className":"imgbox","index":0,"prefix":">","tag":"div","value":"div.imgbox"},

{"index":0,"prefix":">","tag":"a","value":"a"}]}],"ExtractTable":0},

{"objNextLinkElement":"","iMaxNumberOfPage":30,"iMaxNumberOfResult":-

1,"iDelayBetweenMS":1000,"bContinueOnError":false})

    For Each value In arrayData

        iRet = WebBrowser.GoURL(hWeb,value[0],true,"",30000,

{"bContinueOnError":false,"iDelayAfter":100,"iDelayBefore":100})

        //TracePrint("正在下载:"&value[0]&"集")

        // bRet = File.PathExists(@res"tu"&"\\"&value[0])

        // If bRet

        //  Else

        //File.CreateFolder(@res"tu"&"\\"&value[0])

        // End If

        #icon("@res:lhbmf4c7-jnfb-kmp5-882m-5i3e1g5fgm37.png")

        sRet = UiElement.GetAttribute({"wnd":

[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},

{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":

[{"tag":"IMG","id":"currentImg"}]},"src",

{"bContinueOnError":false,"iDelayAfter":100,"iDelayBefore":100})

        dTime = Time.Now()

        sRetime = Time.Format(dTime,"yymmddhhmmss")

       WebBrowser.Download(hWeb,sRet,@res"tu"&"\\"&sRetime&".jpg"                               

  ,false,100000,{"bContinueOnError":false,"iDelayAfter":100,"iDelayBefore":100})

    Next

End Function

// 图片保存在 E:(新建流程盘符) \(你新建的文件夹)\ser\res\tu\ *.jpg  例  E:\Uibot\baidu\res\tu\

yi

er

san


上传的附件:
最新回复 (5)
  • 换个昵称 2020-8-6
    2

    根据自己的想法改啊改,你可还认得?

    //  Google Chrome 浏览器,打开百度  输入框写入图片搜索关键字 ,确定  自动下载 图排片
    dim 关键字 = "",hWeb = "",图片连接数组 = [],图片网络地址="",当前时间=0,图片地址="",抓图总数=0
    //用户输入关键字
    关键字  = Dialog.InputBox("","  图片搜索关键词  ","",false)
    //关键字空白时退出流程
    If (关键字 = "") or (关键字 = null)
    Dialog.MsgBox("关键字为空,点击确认退出流程。","UiBot","0","1",0)
    exit()
    End If
    //判断图片保存文件夹存在
    If File.PathExists(@res"图片收藏夹\\"&关键字)=false
    //创建图片保存文件夹
    File.CreateFolder(@res"图片收藏夹\\"&关键字)
    End If
    Try
    //尝试绑定浏览器
    hWeb = WebBrowser.BindBrowser("chrome",10000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200})
    Catch
    //打开浏览器
    hWeb = WebBrowser.Create("chrome","",30000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200,"sBrowserPath":"","sStartArgs":""})
    End Try
    //窗口最大化
    Window.Show({"wnd":[{"app":"chrome","cls":"Chrome_WidgetWin_1","title":"*"}]},"max")
    //打开百图图片主页
    WebBrowser.GoURL(hWeb,"https://image.baidu.com/",true,{},30000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200})
    //在网页填写图片搜索关键字
    UiElement.SetValue({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"INPUT","id":"kw"}]},关键字,{"bContinueOnError":false,"iDelayAfter":100,"iDelayBefore":100})
    //点击“搜索按钮”
    Mouse.Action({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"SPAN","parentid":"homeSearchForm","isleaf":"1"}]},"left","click",10000,{"bContinueOnError":false,"iDelayAfter":100,"iDelayBefore":100,"bSetForeground":true,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate"})
    //等待页面加载
    WebBrowser.WaitPage(hWeb,{},60000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":300})
    //批量抓取图片连接数组
    图片连接数组 = UiElement.DataScrap({"html":[{"id":"imgid","tag":"DIV"}],"wnd":[{"app":"chrome","cls":"Chrome_WidgetWin_1","title":"*"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}]},{"Columns":[{"props":["url"],"selecors":[{"index":0,"prefix":"","tag":"div","value":"div"},{"index":0,"prefix":">","tag":"ul","value":"ul"},{"index":0,"prefix":">","tag":"li","value":"li"},{"className":"imgbox","index":0,"prefix":">","tag":"div","value":"div.imgbox"},{"index":0,"prefix":">","tag":"a","value":"a"}]}],"ExtractTable":0},{"objNextLinkElement":"","iMaxNumberOfPage":30,"iMaxNumberOfResult":-1,"iDelayBetweenMS":1000,"bContinueOnError":false})
    //获取图片数据总数
    抓图总数=Len(图片连接数组)
    //弹出抓图总数提示
    Dialog.Notify("当前抓取图片连接总数:"&抓图总数, "UiBot", "0")
    //遍历图片连接数组
    For i=0 to 抓图总数-1
    //打开图片连接
    WebBrowser.GoURL(hWeb,图片连接数组[i][0],true,"",30000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":300})
    //等待页面加载
    WebBrowser.WaitPage(hWeb,{},60000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":300})
    Try
    //尝试抓取图片网络地址
    图片网络地址 = UiElement.GetAttribute({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"IMG","id":"currentImg"}]},"src",{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":300})
    Catch
    //弹出下载失败提示
    Dialog.Notify("图片下载进度:"&(i+1)&"/"&抓图总数&"\n图片下载失败", "UiBot", "0")
    //跳过当前循环
    Continue
    End Try
    //获取当前时间
    当前时间 = Time.Format(Time.Now(),"yyyymmddhhmmss")
    //下载图片文件
    WebBrowser.Download(hWeb,图片网络地址,@res"图片收藏夹\\"&关键字&"\\"&当前时间&".jpg",false,100000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":300})
    //弹出下载成功提示
    Dialog.Notify("图片下载进度:"&(i+1)&"/"&抓图总数&"\n图片下载完成", "UiBot", "0")
    Delay 300
    Next


  • 尐呆瓜 2020-8-6
    3
    @换个昵称    多谢 大佬 受教了  就佩服 可随心所欲写代码的  /不像我.新手.只能照葫芦画瓢(作出来/代码显的那么臃肿);  Continue (结束当前循环并开始下次循环) 这句用的不错 学习了。获取时间的也学习了。
    //遍历图片连接数组
    For i=0 to 抓图总数-1 
    //打开图片连接
    //等待页面加载 (FOR 循环里 行等待加载 可不用写了 上句 打开图片有等待加载完成‘是’选项 )
  • 尐呆瓜 2020-8-6
    4

    大佬 。 有个对于我这样 萌新 值得高兴的事 、昨晚 呐  研究来 研究去  总算 是 研究出来 那个 执行JS  点击命令了 
    (网上看好几个视频 不得要领 看了试  试了又看  最终才明白 哦  不容易了啊!  尽..瞎琢磨 呐 ! ‘还是得好好学’)

    www.baidu.com  --- 设置输入框元素文本 ——  点击   百度一下 (就是点这个按钮的)

    sRet = WebBrowser.RunJS(hWeb,'''
         function(){
            document.getElementById('su').click()
         return 123
        }''',true,{"bContinueOnError":false,"iDelayAfter":100,"iDelayBefore":100})
        
    // 查找按钮的标签  id  去点击    (这方法就可 后台点击网页了 做别的也不影响了 ‘这强迫症吧 就这一个 模拟点击 也不想要 .......’) 

  • 换个昵称 2020-8-6
    5

    我也是新手,业余时间研究一下,不会的也自己查查资料琢磨琢磨,常在论坛看到问题思考一下解决方案。像JS功能我也还没学习。
    获取当前时间的方法其实跟你的代码一样,只是整合起来,节省行数、函数量,缺点是整合太多代码会阅读困难。
    UB不支持后台运行,操作对象必须在当前激活窗口。

    遍历部分改用计数循环不用数组遍历,一是我想要个计数的变量,一是展示用计数循环方法也可以遍历数组。这里用原来的遍历数组执行也是可以的。

  • 尐呆瓜 2020-8-6
    6


    //   试试 下面的 三次 点击 真的可以 在 运行的 同时可以去 做别的 (或许不是吧 、类似后台点击 / 不是模拟点击了)


    // 百度一下 按钮  点击  ( 图 1 )

    sRet = WebBrowser.RunJS(hWeb,'''
        function(){
           document.getElementById('su').click()
        return 123
       }''',true,{"bContinueOnError":false,"iDelayAfter":100,"iDelayBefore":100})

    // 等待浏览器加载完成 ,元素检测 判断(2 图片 元素是否存在)

    #icon("@res:default.png")

    iRet = WebBrowser.WaitPage(hWeb,{"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"A","parentid":"s_tab","aaname":"图片"}]},60000,{"bContinueOnError":false,"iDelayAfter":100,"iDelayBefore":100})

    //  点击 图片 标签  (图 2 ) 

    sRet = WebBrowser.RunJS(hWeb,'''

       function(){
           document.getElementsByClassName('s-tab-item s-tab-pic')[0].click()
        return 123
       }''',true,{"bContinueOnError":false,"iDelayAfter":100,"iDelayBefore":100})

    // 等待浏览器加载完成 ,元素检测 判断(3 高清 元素是否存在)

    #icon("@res:default.png")
    iRet = WebBrowser.WaitPage(hWeb,{"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"LI","parentid":"typeFilter","idx":2}]},60000,{"bContinueOnError":false,"iDelayAfter":100,"iDelayBefore":100})

    //  点击 高清 标签  (图 3

    sRet = WebBrowser.RunJS(hWeb,'''

       function(){
           document.getElementsByTagName('li')[1].click()
        return 123
       }''',true,{"bContinueOnError":false,"iDelayAfter":100,"iDelayBefore":100})



返回
发新帖