用VB 如何下载这个网站的图片?

qq_39274558 2017-07-29 07:18:25
用VB 如何下载这个网站的图片?

例如:http://www.gexing.com/shaitu/3620615.html

这个网页下的图片:http://p5.gexing.com/GSF/shaitu/20170729/1029/597bf2f5a8322.jpg

这个图片的地址是正确的,通过浏览网页时下载和打开都可以,但是如果关闭后打开这个图片的地址是禁止访问,

请问有什么方法可以用VB下载呢?

谢谢。
...全文
627 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cn_StarLD星光 2019-07-18
  • 打赏
  • 举报
回复
太牛逼了,简直羡慕得五体投“他”ne
找了一下午写了一堆代码结果发现C站竟然有一种神奇得不需要inet的方法
舉杯邀明月 2017-07-30
  • 打赏
  • 举报
回复
可能要等sysdzw 来给你解决了,他在Web方面是高手。
笨狗先飞 2017-07-30
  • 打赏
  • 举报
回复

Public Sub URLToFile(ByVal URL As String, ByVal FileName As String)
    Dim HTTP As Object, FN As Integer, Data() As Byte
    Set HTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
    HTTP.Option(6) = False
    HTTP.Option(4) = 13056
    HTTP.Open "GET", URL
    HTTP.SetRequestHeader "Referer", "http://www.gexing.com/"
    HTTP.Send
    Data = HTTP.Responsebody
    Set HTTP = Nothing
    FN = FreeFile
    Open FileName For Binary As FN
    Put #FN, , Data
    Close FN
End Sub
URLToFile "http://p5.gexing.com/GSF/shaitu/20170729/1029/597bf2f5a8322.jpg","C:\ok.jpg" 就是Referer的原因,前面拼错了。。。。
qq_39274558 2017-07-30
  • 打赏
  • 举报
回复
引用 5 楼 bakw 的回复:

Public Sub URLToFile(ByVal URL As String, ByVal FileName As String)
    Dim HTTP As Object, FN As Integer, Data() As Byte
    Set HTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
    HTTP.Option(6) = False
    HTTP.Option(4) = 13056
    HTTP.Open "GET", URL
    HTTP.SetRequestHeader "Referer", "http://www.gexing.com/"
    HTTP.Send
    Data = HTTP.Responsebody
    Set HTTP = Nothing
    FN = FreeFile
    Open FileName For Binary As FN
    Put #FN, , Data
    Close FN
End Sub
URLToFile "http://p5.gexing.com/GSF/shaitu/20170729/1029/597bf2f5a8322.jpg","C:\ok.jpg" 就是Referer的原因,前面拼错了。。。。
谢谢,可以搞点。哈哈。
舉杯邀明月 2017-07-30
  • 打赏
  • 举报
回复
引用 5 楼 bakw 的回复:

Public Sub URLToFile(ByVal URL As String, ByVal FileName As String)
    Dim HTTP As Object, FN As Integer, Data() As Byte
    Set HTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
    HTTP.Option(6) = False
    HTTP.Option(4) = 13056
    HTTP.Open "GET", URL
    HTTP.SetRequestHeader "Referer", "http://www.gexing.com/"
    HTTP.Send
    Data = HTTP.Responsebody
    Set HTTP = Nothing
    FN = FreeFile
    Open FileName For Binary As FN
    Put #FN, , Data
    Close FN
End Sub
URLToFile "http://p5.gexing.com/GSF/shaitu/20170729/1029/597bf2f5a8322.jpg","C:\ok.jpg" 就是Referer的原因,前面拼错了。。。。
不错啊,可以搞定。
qq_39274558 2017-07-29
  • 打赏
  • 举报
回复
是呀,打不开呀。真晕 我想批量下载,在不访问网站的情况下实现
舉杯邀明月 2017-07-29
  • 打赏
  • 举报
回复
这个应该是有“会话凭证”之类的吧。 我用IE试了下,先直接访问那个图片,打不开。 然后进入那个“网站”,再“新建”一个选项卡,访问图片能打开。 在IE缓存中把它缓存的图片文件删除后(手工定准删除的文件,并没有删除别的任何数据),其实还是打不开。 所以在“新建选项卡”中打开的,实际只是从缓存中读取的而已,并不是从网站上下载的。 因不访问那个网站之后,关闭IE不要清缓存,然后重新打开IE访问图片,还是“能打开”的。
笨狗先飞 2017-07-29
  • 打赏
  • 举报
回复
需要http头上加refer

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧