【问题标题】:How to download all the images from a website in ubuntu where the image width is greater than 602px?如何从图像宽度大于602px的ubuntu网站下载所有图像?
【发布时间】:2021-02-08 11:19:39
【问题描述】:

如何在ubuntu中图片宽度大于602px的网站下载所有图片?我的意思是我不想下载缩略图或调整大小的图片只想下载图像的原始像素。

给我这个页面的示例代码“https://hdqwalls.com/category/funny-wallpapers

示例:

小缩略图 [300x200 像素]: https://images.hdqwalls.com/wallpapers/thumb/smile-cry-box-09.jpg

大缩略图 [602x339 像素]:https://images.hdqwalls.com/wallpapers/bthumb/smile-cry-box-09.jpg

原图[全像素]:https://images.hdqwalls.com/wallpapers/smile-cry-box-09.jpg

我知道一个代码,但我不确定。

wget -i `wget -qO- https://wall.alphacoders.com/by_sub_category.php?id=169002&name=Model+Wallpapers | sed -n '/<img/s/.*src="\([^"]*\)".*/\1/p' | awk '{gsub("thumb-350-", "");print}'`

【问题讨论】:

  • edit您的问题并添加更多详细信息:“图像......大于500px”的确切含义是什么?你指的是哪个网站?您的代码从特定网页的 HTML 代码中提取数据。 HTML 代码中可能包含有关图像大小的信息,例如因为它可能会将图像缩放到特定大小,但这与图像文件的实际大小无关。您的代码假定从图像 URL 中删除 thumb-350- 会导致正常大小的图像对应于缩略图。这在很大程度上取决于网站或页面的具体实现。
  • 请查看更新后的问题。
  • 我认为很难实现问题中提到的图像大小检查,但是可以提取所有缩略图图像 URL 并根据中显示的示例构建完整大小的图像 URL问题。

标签: linux ubuntu command-line ubuntu-18.04


【解决方案1】:

以下脚本适用于特定网页https://hdqwalls.com/category/funny-wallpapers 假设完整尺寸图像的 URL 可以从缩略图 URL 派生,如问题中的示例所示。

它不检查图像大小,而只是尝试下载所有构建的图像 URL,这些 URL 应该是与缩略图图像对应的全尺寸图像。
(不先下载文件是无法查看图片大小的。)

转义的换行符只是为了提高可读性。

wget -O- https://hdqwalls.com/category/funny-wallpapers | \
  grep -o "<img src='https://images.hdqwalls.com/wallpapers/thumb/[^.]*.jpg'" | \
  sed -e "s/[^']*'//" -e "s/'.*//" -e "s#/thumb/#/#" | \
  wget -i-

简短说明:

  • wget将页面的HTML代码发送到管道
  • grep 从 HTML 代码中提取缩略图标签
  • sed 从 HTML 标记中提取纯缩略图 URL 并删除子目录 /thumb/ 以从缩略图 URL 中导出完整大小的图像 URL
  • 第二个wget 下载作为标准输入接收的 URL

当然还有其他方法可以达到同样的效果。

如果您想将该脚本用于其他网页,您可能需要根据需要调整grep 模式和sed 替换命令。

【讨论】:

    猜你喜欢
    • 2013-12-05
    • 2011-06-05
    • 1970-01-01
    • 2016-12-31
    • 2017-04-27
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    相关资源
    最近更新 更多