【问题标题】:Issue with wget trying to get images from certain websiteswget 尝试从某些网站获取图像的问题
【发布时间】:2015-09-03 02:41:34
【问题描述】:

我正在尝试使用以下代码从该网站路径 http://www.samsung.com/sg/consumer/mobile-devices/smartphones/ 下载所有图片

wget -e robots=off -nd -nc -np --recursive -r -p --level=5 --accept jpg,jpeg,png,gif --convert-links -N --limit-rate=200k --wait 1.0 -U 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1' -P testing_folder  www.samsung.com/sg/consumer/mobile-devices/smartphones

我希望看到下载到我的 testing_folder 的手机图像。但我看到的只是一些全局图像,如徽标等。我似乎无法下载手机图像。上面的代码似乎可以在其他一些网站上运行。

我已经浏览了这个论坛上的所有 wget 问题,但这个特定问题似乎没有答案。有人可以帮忙吗,我相信很容易。我做错了什么?

更新: 看起来这是可能的 javascript 页面的问题,因此似乎是路的尽头,因为显然 wget 无法很好地处理 javascript 页面。如果有人仍然可以提供帮助,将很高兴。

【问题讨论】:

  • 看起来这些图像没有任何扩展名,如 jpg、jpeg 等。检查页面未显示指向这些图像的直接链接,这可能是您的脚本无法正常工作的原因。
  • 我还没有查看该页面,但图像完全有可能由 javascript 填充,这意味着使用wget 获取的页面不会包含那些img 链接。获取带有wget 的页面并检查 HTML 源代码。
  • ronakg,谢谢。如果我将路径更改为下面的路径,那么肯定有一个我想抓取的图像。 samsung.com/sg/consumer/mobile-devices/smartphones/galaxy-s/… 但是,这似乎也不起作用
  • This page 对此主题进行了一些有用的讨论,但 tl;dr 是“它很复杂”。
  • 你可能不得不使用更强大的东西,比如 PhantomJS(基于 webkit 的可编写脚本的无头浏览器)来下拉通过 JS 填充的图像。

标签: bash wget


【解决方案1】:

步骤:

  1. 配置代理服务器,例如带有 mod_proxy 和 mod_http_proxy 的 Apache httpd

  2. 使用支持 JavaScript 并配置为使用您的代理服务器的网络浏览器访问页面

  3. 从代理服务器日志文件中获取 URL 并将它们放在一个文件中

或者:

  1. 启动 Firefox 并打开网页

  2. F10-工具-页面信息-媒体-右键-全选-右键-复制

  3. 使用您喜欢的编辑器粘贴到文件中

然后:

  1. 可选,(如果您不想了解如何让 wget 从文件中读取 URL 列表),将最少的 html 标签(html、body 和 img)添加到文件中

  2. 使用wget下载图片,指定步骤3或4中创建的文件为起点

【讨论】:

  • @Jochim,谢谢,但步骤 3、4、5 是我自己能够做的。因为我是初学者,所以第 1 点和第 2 点超出了我的能力范围。
  • 这些替代步骤怎么样?他们捕获所有图像吗?对我来说看起来不错,但在此阶段可能并非所有图像都已加载。
  • 感谢您提供替代步骤。与 www.roca.in 完全一样,但我最终得到的只是额外的图像,而不是我需要的图像。感谢您的努力。
猜你喜欢
  • 2016-02-10
  • 2020-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-01
  • 2012-06-22
  • 1970-01-01
相关资源
最近更新 更多