fenhanxue 发表于 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,可以正常访问到图片

229989799 发表于 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]]])

fenhanxue 发表于 2017-3-16 15:28:11

回复 2# 229989799


    图片无法下啊

229989799 发表于 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才能正常读取到图片。。

229989799 发表于 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")

fenhanxue 发表于 2017-3-16 16:05:58

回复 4# 229989799

IE 和 chrome 都测试过



229989799 发表于 2017-3-16 16:20:52

此网站不稳定,图片都有时候打不开。我测试的时候是可以下载的。。现在又打不开了。。估计是网站问题。

fenhanxue 发表于 2017-3-16 17:37:18

回复 7# 229989799


    这应该不是稳定不稳定的问题吧,网站本身可能就是限制了inetget这种方式

cxlater 发表于 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=亲测可以打开

fenhanxue 发表于 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'
应该如何写?

cxlater 发表于 2017-3-16 23:35:52

回复 10# fenhanxue


    http://www.autoitx.com/forum.php?mod=viewthread&tid=18528&highlight=winhttp
这个应该能帮到你

fenhanxue 发表于 2017-3-17 11:23:32

回复 11# cxlater


    太感谢!

似懂非懂 发表于 2017-3-18 13:57:35

太深奥,看不懂。保存下来好好学习下
页: [1]
查看完整版本: 如何下载这张图片【已解决】