找回密码
 加入
搜索
查看: 9267|回复: 14

[AU3基础] 网页图片获取

 火.. [复制链接]
发表于 2014-12-5 10:44:43 | 显示全部楼层 |阅读模式
本帖最后由 liangxm 于 2014-12-5 10:48 编辑

$oIE1 = _IECreate($url)
$oImg = _IEImgGetCollection($oIE1, 0)

If $oImg.src =$url Then
        $oPic = $oIE1.Document.body.createControlRange()
        $oPic.Add($oImg)
        $oPic.execCommand("Copy");;复制图片到剪贴板
        $img = ClipGet();;从剪贴板得到图片
EndIf

通过_IECreate,_IEImgGetCollection(返回一个文档内IMG标签的对象变量集合)的方式获取网页里面的图片

不知道用

$xmlhttp = ObjCreate("WinHttp.WinHttpRequest.5.1")
$xmlhttp.open("GET", $url, False)

这样的方式该如何获取图片呢?
QQQ
发表于 2014-12-5 11:30:15 | 显示全部楼层
多用搜索。。。
 楼主| 发表于 2014-12-5 14:01:37 | 显示全部楼层
回复 2# 樱花雪月


    搜了,暂时没找到用ObjCreate("WinHttp.WinHttpRequest.5.1")的方法,能给个链接看看?
 楼主| 发表于 2014-12-5 14:02:19 | 显示全部楼层
回复 3# zhao_ming


    嗯,我只是截取一段而已

_GDIPlus_Startup()
_ClipBoard_Open(0)
$iVerifyPics = _ClipBoard_GetDataEx($CF_BITMAP);;从剪贴板获取图片句柄
$iVerifyPics = _GDIPlus_BitmapCreateFromHBITMAP($iVerifyPics);;创建图片
;~ _ScreenCapture_Capture(@ScriptDir & "\GDIPlus_Image2.jpg", 413, 137, 594, 192)
_GDIPlus_ImageSaveToFile($iVerifyPics, @ScriptDir  & "\"&$i&".bmp");;;保存图片到当前脚本目录
_ClipBoard_Close()
发表于 2014-12-5 15:10:32 | 显示全部楼层
不错啊。很实用啊。
发表于 2014-12-5 16:22:51 | 显示全部楼层
楼主是不是想下载一张图片~~
 楼主| 发表于 2014-12-5 17:24:08 | 显示全部楼层
$xmlhttp.open("GET", $imgurl, False)
$xmlhttp.send()
$bData = Binary($xmlhttp.responseBody)
$Length = BinaryLen($bData)
$hData = _MemGlobalAlloc($Length, $GMEM_MOVEABLE)
$pData = _MemGlobalLock($hData)
$tData = DllStructCreate('byte[' & $Length & ']', $pData)
DllStructSetData($tData, 1, $bData)
_MemGlobalUnlock($hData)
$pStream = _WinAPI_CreateStreamOnHGlobal($hData)
_GDIPlus_Startup()
$hImage = _GDIPlus_BitmapCreateFromStream2($pStream)
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
_ScreenCapture_SaveImage(@ScriptDir & "\Image.bmp", $hBitmap, True)

貌似搞定了- -
 楼主| 发表于 2014-12-5 17:24:35 | 显示全部楼层
回复 7# haijie1223


    是的,不知道是不是我的方法。。。
发表于 2014-12-5 17:57:30 | 显示全部楼层
回复 8# liangxm
你用xmlhttp下载得到的responsebody就是文本的二进制文本,直接以二进制方式写入个文件里就可以了
发表于 2014-12-5 20:10:50 | 显示全部楼层
方法太多了吧~8#正解
发表于 2014-12-5 21:41:40 | 显示全部楼层
本帖最后由 kevinch 于 2014-12-5 21:43 编辑
$url="http://www.autoitx.com/templates/thesnoW/images/logo.png"
$xmlhttp=ObjCreate("msxml2.xmlhttp")
If IsObj($xmlhttp) Then
        $xmlhttp.open("GET",$url,True)
        $xmlhttp.send
        While $xmlhttp.readystate<>4
                Sleep(100)
        WEnd
        If $xmlhttp.status=200 Then
                $tmp=StringRegExp($xmlhttp.getresponseheader("Content-Type"),"(?is)image\/(.+)",3)
                If IsArray($tmp) Then
                        $file=FileOpen(@ScriptDir&"\temp."&$tmp[0],2+8+16)
                        FileWrite($file,$xmlhttp.responsebody)
                        FileClose($file)
                        ShellExecute(@ScriptDir&"\temp."&$tmp[0])
                EndIf
        EndIf
EndIf
这个试一下
发表于 2014-12-6 10:33:24 | 显示全部楼层
InetGet("http://www.baidu.com/img/bdlogo.png", @DesktopDir&"\test.png")
发表于 2014-12-10 11:56:58 | 显示全部楼层
难在获取图片地址吧?学习中。。。。
发表于 2020-9-17 11:10:26 | 显示全部楼层
666666666666666666
发表于 2020-11-18 11:23:22 | 显示全部楼层
au3对网页内的操控太弱了,但还不知道有没有更好的工具
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 12:52 , Processed in 0.075096 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表