使用 R 语言 下载 'https://www.zhihu.com/question/30456390' 回答下所有的图片内容

此处提供一种思路,使用 R 语言中的 rvest 库和 magick 库来实现下载并合并图片。

1. 安装 rvestmagick

install.packages('rvest')
install.packages('magick')

2. 使用 rvest 库中的 read_html() 函数获取页面内容,并使用 CSS 选择器获取所有图片的链接

library(rvest)

url <- 'https://www.zhihu.com/question/30456390'

html <- read_html(url)

img_urls <- html %>%
  html_nodes('.RichContent-inner img') %>%
  html_attr('src')

3. 使用 magick 库中的 image_read() 函数读取图片,并将所有图片合并为一张大图

library(magick)

# 下载并读取所有图片
imgs <- lapply(img_urls, function(url) image_read(url))

# 计算大图的宽度和高度
widths <- sapply(imgs, function(img) {dim(img)[2]})
heights <- sapply(imgs, function(img) {dim(img)[1]})
max_width <- max(widths)
total_height <- sum(heights)

# 创建一张白色背景的大图
merged_img <- image_blank(max_width, total_height, 'white')

# 开始合并所有图片
y_start <- 0
for (i in 1:length(imgs)) {
  img <- imgs[[i]]
  y_end <- y_start + dim(img)[1] - 1
  merged_img <- image_composite(merged_img, img, offset = sprintf('+0+%d', y_start))
  y_start <- y_end + 1
}

4. 将合并后的大图保存到本地

image_write(merged_img, 'merged_img.jpg')
R语言爬取知乎问题图片并合并 - 使用 rvest 和 magick 库

原文地址: https://www.cveoy.top/t/topic/nCqz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录