获取源码失败

fzlrpsun 2013-05-05 10:29:53
用的是这个贴里的代码http://bbs.csdn.net/topics/260014186
网站是太平洋摄影部落,比如http://dp.pconline.com.cn/photo/2467995.html
第一次能获取到,但后面就获取不到了,应该是网站做了限制。
我想下载图片,直接多线程同时获取
结果第一次源码取到了,图片下载失败,每个只有30字节
第二次运行源码也获取不到了
然后试着在线程之间,图片之间加了延时,500ms,图片还是下载失败
                        Using myWebClient As New WebClient
myWebClient.DownloadFile(strPhotoLink, strSavePath & "\" & strAlbumName & "\" & i + 1 & ".jpg")
End Using

每个图片都是这样下载的,貌似不合适?

灰常感谢
...全文
128 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
dong3580 2013-05-07
  • 打赏
  • 举报
回复
引用 12 楼 fzlrpsun 的回复:
[quote=引用 1 楼 devmiao 的回复:] 传一个referer看看,估计服务器有防盗链的机制。
en ,我想应该是这个的原因了,具体方法我还不会,再查查吧 我的问题可能跟这个很相似 http://www.cnblogs.com/bccu/archive/2006/04/29/388770.html[/quote] 我感觉关系不大吧,换了一种方法,但是还是只能获取到网页页眉和页脚的源码,就是不能获取到正文,邪门. 网页地址明明是指向正确的路径的,就是框架内正文对应的路径,邪门了.
fzlrpsun 2013-05-06
  • 打赏
  • 举报
回复
引用 1 楼 devmiao 的回复:
传一个referer看看,估计服务器有防盗链的机制。
en ,我想应该是这个的原因了,具体方法我还不会,再查查吧 我的问题可能跟这个很相似 http://www.cnblogs.com/bccu/archive/2006/04/29/388770.html
fzlrpsun 2013-05-06
  • 打赏
  • 举报
回复
引用 4 楼 liuchaolin 的回复:
byte[] buf = new WebClient().DownloadData(url); MemoryStream ms = new MemoryStream(buf); System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true); image.Save("保存图片路径");
嗯,我用这种方法获取http://img-arch.pconline.com.cn/images/photoblog/7/3/7/2/7372521/200911/30/1259586831249.jpg得到的buf只有30字节
dong3580 2013-05-06
  • 打赏
  • 举报
回复
查看网页源代码看看网站是不是用了框架.
md5e 2013-05-06
  • 打赏
  • 举报
回复
byte[] buf = new WebClient().DownloadData(url); MemoryStream ms = new MemoryStream(buf); System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true); image.Save("保存图片路径");
fzlrpsun 2013-05-06
  • 打赏
  • 举报
回复
引用 2 楼 linrachel 的回复:
每次都strPhotoLink都是正确的吗?
我调试过,是正确的
dong3580 2013-05-06
  • 打赏
  • 举报
回复
引用 6 楼 fzlrpsun 的回复:
[quote=引用 5 楼 dong3580 的回复:] 查看网页源代码看看网站是不是用了框架.
。。。这个我还真不大懂,不过查了下,只有一行有iframe,应该与我获取的图片没多大关系[/quote] 那不就是用了框架了么,用了这个获取源码就有问题了,我的也是,想做个RSS获取链接分析源码得到新闻标题和内容,测试 cnblogs的很正常,但是那个网站用了iframe,用站长工具分析提示说"该网站用了 iframe框架,建议重新布局 以优化源码抓取",我想这个问题该是关键所在吧.诶,你解决了告诉我一声.
md5e 2013-05-06
  • 打赏
  • 举报
回复
引用 7 楼 fzlrpsun 的回复:
[quote=引用 4 楼 liuchaolin 的回复:]
byte[] buf = new WebClient().DownloadData(url);
MemoryStream ms = new MemoryStream(buf);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true);
image.Save("保存图片路径");

是这样的,我这种方法下载豆瓣上的图片是没问题的,但太平洋上的就不行[/quote]

byte[] buf = new WebClient().DownloadData("http://www1.pconline.com.cn/mobile/rw4maimai/img/1.jpg");
Response.ContentType = "image/gif";
Response.BinaryWrite(buf);
Response.End();

太平洋也是可以的啊

http://www1.pconline.com.cn/mobile/rw4maimai/
hu_hujun 2013-05-06
  • 打赏
  • 举报
回复
用火狐可以把当前的页面扒下来 包括框架js css
fzlrpsun 2013-05-06
  • 打赏
  • 举报
回复
引用 4 楼 liuchaolin 的回复:
byte[] buf = new WebClient().DownloadData(url); MemoryStream ms = new MemoryStream(buf); System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true); image.Save("保存图片路径");
是这样的,我这种方法下载豆瓣上的图片是没问题的,但太平洋上的就不行
fzlrpsun 2013-05-06
  • 打赏
  • 举报
回复
引用 5 楼 dong3580 的回复:
查看网页源代码看看网站是不是用了框架.
。。。这个我还真不大懂,不过查了下,只有一行有iframe,应该与我获取的图片没多大关系
linrachel 2013-05-05
  • 打赏
  • 举报
回复
每次都strPhotoLink都是正确的吗?
devmiao 2013-05-05
  • 打赏
  • 举报
回复
传一个referer看看,估计服务器有防盗链的机制。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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