找回密码
 加入
搜索
查看: 3631|回复: 12

[IE类操作] 如何下载这张图片【已解决】

  [复制链接]
发表于 2017-3-16 13:57:26 | 显示全部楼层 |阅读模式
本帖最后由 fenhanxue 于 2017-3-17 11:25 编辑

网址:
http://base1.nijl.ac.jp/iview/Frame.jsp?DB_ID=G0003917KTM&C_CODE=XSE1-03608&IMG_SIZE=&PROC_TYPE=null&SHOMEI=%E3%80%90%E6%84%9B%E6%9F%93%E7%8E%8B%E5%8F%A3%E8%A8%A3%E3%80%91&REQUEST_MARK=null&OWNER=null&IMG_NO=2
日本的,打开比较慢,耐心等待下。。。







就单个网页来说,可以按照下述代码,实现图片保存到本地
        Local $oIE_1 = _IEFrameGetObjByName($oIE,"frame_bottom")
        $oImg = _IEImgGetCollection ($oIE_1, 0);//获取索引0的图片对象(第一张)
        Local $oPic = $oIE_1.Document.body.createControlRange()
        $oPic.Add($oImg);//将图片添加到新创建的集合中(ControlRange)
        $oPic.execCommand("Copy");//将集合复制到剪切板
        $bmp = ClipGet();//获取剪切板内容,以下省略           
        _ClipBoard_Open (0)
        Local $hMemory = _ClipBoard_GetDataEx ($CF_BITMAP) 
        _ClipBoard_Close ()
        _ScreenCapture_SaveImage (@ScriptDir & '\temp.jpg', $hMemory)
但是因为要批量操作,上述代码,需要一个一个打开网页再保存,效率低下,想采用诸如InetGet之类的方法保存图片。

解决方案:

设置Referer,可以正常访问到图片

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-3-16 15:04:53 | 显示全部楼层
本帖最后由 229989799 于 2017-3-16 15:12 编辑

获取到图片的真实下载地址,存起来即可。。

这个是图片的地址
http://image.nijl.ac.jp/conv/images/XSE1/XSE1-03608/XSE1-03608-0001.jpg
你必须打开你发的那个主页,再新窗口打开图片真实地址,就把图片下载下来。
;使用 HTTP,HTTPS 或 FTP 协议下载文件.


InetGet("URL(网址)"[, "文件名"[, 选项 = 0[, 后台 = 0]]])
 楼主| 发表于 2017-3-16 15:28:11 | 显示全部楼层
回复 2# 229989799


    图片无法下啊

[img][/img]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-3-16 15:47:07 | 显示全部楼层
本帖最后由 229989799 于 2017-3-16 15:51 编辑

回复 3# fenhanxue

    不是说了吗,必须先打开你发的主页。
http://base1.nijl.ac.jp/iview/Frame.jsp?DB_ID=G0003917KTM&C_CODE=XSE1-03608&IMG_SIZE=&PROC_TYPE=null&SHOMEI=%E3%80%90%E6%84%9B%E6%9F%93%E7%8E%8B%E5%8F%A3%E8%A8%A3%E3%80%91&REQUEST_MARK=null&OWNER=null&IMG_NO=2
再新窗口打开
http://image.nijl.ac.jp/conv/images/XSE1/XSE1-03608/XSE1-03608-0001.jpg
才能正常读取到图片。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-3-16 15:54:30 | 显示全部楼层
用代码打开是正常,然后你想办法下载图片吧。多多动手,我也是新手啊。。
#include <IE.au3>
_IECreate("http://base1.nijl.ac.jp/iview/Frame.jsp?DB_ID=G0003917KTM&C_CODE=XSE1-03608&IMG_SIZE=&PROC_TYPE=null&SHOMEI=%E3%80%90%E6%84%9B%E6%9F%93%E7%8E%8B%E5%8F%A3%E8%A8%A3%E3%80%91&REQUEST_MARK=null&OWNER=null&IMG_NO=2",0,0,1,0)
$oIE = _IECreate("http://image.nijl.ac.jp/conv/images/XSE1/XSE1-03608/XSE1-03608-0001.jpg")
 楼主| 发表于 2017-3-16 16:05:58 | 显示全部楼层
回复 4# 229989799

IE 和 chrome 都测试过



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-3-16 16:20:52 | 显示全部楼层
此网站不稳定,图片都有时候打不开。我测试的时候是可以下载的。。现在又打不开了。。估计是网站问题。
 楼主| 发表于 2017-3-16 17:37:18 | 显示全部楼层
回复 7# 229989799


    这应该不是稳定不稳定的问题吧,网站本身可能就是限制了inetget这种方式
发表于 2017-3-16 18:21:47 | 显示全部楼层
设置Referer:
http://base1.nijl.ac.jp/iview/FrameBottom.jsp?DB_ID=G0003917KTM&C_CODE=XSE1-03608&IMG_CODE=XSE1/XSE1-03608/XSE1-03608-0001.jpg&IMG_SIZE=
亲测可以打开

评分

参与人数 1金钱 +11 收起 理由
Duvet + 11

查看全部评分

 楼主| 发表于 2017-3-16 22:36:28 | 显示全部楼层
回复 9# cxlater


是这样写么?
Local $url = 'http://image.nijl.ac.jp/conv/images/XSE1/XSE1-03608/XSE1-03608-0001.jpg'

        Local $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
                $oHTTP.Open("GET",$url)
                $oHTTP.SetRequestHeader("Referer",'http://base1.nijl.ac.jp/iview/FrameBottom.jsp?DB_ID=G0003917KTM&C_CODE=XSE1-03608&IMG_CODE=XSE1/XSE1-03608/XSE1-03608-0001.jpg&IMG_SIZE=')
        $oHTTP.Send()
然后比如我要保存为   $save = @ScriptDir & '\1.jpg'
应该如何写?
发表于 2017-3-16 23:35:52 | 显示全部楼层
回复 10# fenhanxue


    http://www.autoitx.com/forum.php ... p;highlight=winhttp
这个应该能帮到你
 楼主| 发表于 2017-3-17 11:23:32 | 显示全部楼层
回复 11# cxlater


    太感谢!
发表于 2017-3-18 13:57:35 | 显示全部楼层
太深奥,看不懂。保存下来好好学习下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-21 20:48 , Processed in 0.092389 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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