楼主: jmpamao
8091 9

[问答] R语言 如何网站图片批量下载 [推广有奖]

  • 7关注
  • 16粉丝

已卖:6份资源

副教授

93%

还不是VIP/贵宾

-

TA的文库  其他...

R_JULIA_learning

威望
0
论坛币
1815 个
通用积分
98.3943
学术水平
134 点
热心指数
183 点
信用等级
88 点
经验
23214 点
帖子
584
精华
0
在线时间
1523 小时
注册时间
2011-1-18
最后登录
2024-12-13

初级热心勋章

楼主
jmpamao 发表于 2013-11-11 17:17:28 |AI写论文
200论坛币
请教大神们,关于如何用R 进行图片批量下载?
现在要下载 http://www.bathandbodyworks.com 里面产品的图片(要高清的,非小图)。

现在是手工提取的
比如http://www.bathandbodyworks.com/product/index.jsp?productId=23418996&cp=12586965.12587140.4191845
Vanilla Bean Noel产品的图片(高清的图)

CHROME 中 -》审查元素 -》NETWORK-》images->pBBW1-16646867enh-z8.jpg

url:http://www.bathandbodyworks.com/graphics/product_images/pBBW1-16646867enh-z8.jpg



其他的产品 类似,其命名是类似 pBBW1-1664...enh-z8.jpg

大家看看如何批量下载撒~~~



关键词:批量下载 R语言 Graphics Product GRAPHIC 图片 如何 网站

回帖推荐

沙发
统计R浪人 发表于 2013-11-11 17:17:29
  1. rm(list=ls())
  2. library(RCurl)
  3. library(downloader)
  4. url<-'http://www.bathandbodyworks.com/product/index.jsp?productId=23418996&cp=12586965.12587140.4191845'
  5. # 获取网页原代码,以行的形式存放在web变量中
  6. web <-readLines(url,encoding="UTF-8")
  7. # 找到包含图片格式.jpg的行编号
  8. name <- web[grep("\\jpg',+$",web)+1]
  9. name<-name[grep("jpg",name)]

  10. # 用正则表达式来提取网址
  11. pattern <-'http://[-A-Za-z0-9_.%]+/[-A-Za-z0-9_.%]+/[-A-Za-z0-9_.%]+/[-A-Za-z0-9_.%]'
  12. gregout <- gregexpr(pattern,name)
  13. downurl<-0
  14. filenames<-0
  15. for(i in 1:ncol(t(name)))
  16. {
  17.      downurl[i]<-substr(name[i],gregout[[i]],gregout[[i]]+attr(gregout[[i]],'match.length')+22)
  18.      downurl[i]<-sub(pattern = "'|',", replacement = "", downurl[i])
  19.      filenames[i]<- strsplit(downurl[i],"/")[[1]][6]
  20.      download(sprintf(downurl[i]),filenames[i],mode = "wb");
  21. }
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
jmpamao + 1 + 1 + 1 精彩帖子 厉害厉害 要好好消化下

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
求证1加1 发表于 2013-11-11 18:13:01
如果你的url有规律的话,写个小程序应该就ok了吧
个人主页,欢迎订阅http://chenangliu.info/

板凳
jmpamao 发表于 2013-11-11 18:28:31
求证1加1 发表于 2013-11-11 18:13
如果你的url有规律的话,写个小程序应该就ok了吧
帮忙看看撒  我晚上回去想

报纸
kaifengedu 发表于 2013-11-12 07:35:40
jmpamao 发表于 2013-11-11 18:28
帮忙看看撒  我晚上回去想
没看出来具体的规律,帮顶。

地板
jmpamao 发表于 2013-11-12 09:48:15
kaifengedu 发表于 2013-11-12 07:35
没看出来具体的规律,帮顶。
是的, 图片中间的 数值有间断。

想 for 循环 in 16000000:16900000
问题:
1、如果中间有间断(没有图片)的话,程序就会提示而终止,怎么继续  try(.silent)?
2、图片保存的问题?
3、速度

另外有没有什么办法,查看http://www.bathandbodyworks.com/graphics/product_images/ 中的文件名,因为打开连接 提示:
Forbidden

You don't have permission to access /pimg/UNKNOWN/ on this server.

7
jmpamao 发表于 2013-11-12 17:26:59
统计R浪人 发表于 2013-11-12 16:46
另外, 这个程序是一个子网站下的图片,其中包含一个pBBW1-16646867enh-z8.jpg文件(大图),这是我需要的。 它也是http://www.bathandbodyworks.com/graphics/product_images/ 目录下的大图。现在是要把http://www.bathandbodyworks.com/graphics/product_images/ 目录下的大图全部提取出来,怎么做?

辛苦了,等这个主题结束后,给你金币。

8
统计R浪人 发表于 2013-11-12 18:12:15
jmpamao 发表于 2013-11-12 17:26
另外, 这个程序是一个子网站下的图片,其中包含一个pBBW1-16646867enh-z8.jpg文件(大图),这是我需要的 ...
根据这些
http://www.bathandbodyworks.com/home
http://www.bathandbodyworks.com/ ... 2937666&cp=12586994
http://www.bathandbodyworks.com/ ... p=12586994.22937666
看看有没有规律,然后用字符串替换函数sub()
自动生成 url 就应该可以了

http://www.bathandbodyworks.com/home 这个是动态网页,你看看这个网页的源代码,看是怎么生成下级链接网址,按这个方法生成下载 url 也是个思路
RCurl里面有操作网页的函数你查查看


9
jmpamao 发表于 2013-11-12 20:27:08
统计R浪人 发表于 2013-11-12 18:12
根据这些
http://www.bathandbodyworks.com/home
http://www.bathandbodyworks.com/ ... 2937666&cp=12 ...
恩  够我喝上一壶了

10
ddxygq 发表于 2016-7-13 10:06:38
统计R浪人 发表于 2013-11-11 17:17
为什么会有错误Error in gregout[] : subscript out of bounds

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-4 09:57