【问题标题】:Bizarre download of webpage using wget and curl使用 wget 和 curl 奇怪地下载网页
【发布时间】:2010-09-09 14:09:01
【问题描述】:

我正在尝试下载一些远程页面。在源代码中有很长的一行。 curl 和 wget 都下载文件,但决定错过这一行。是否有另一个我可以使用的命令行实用程序和/或有人知道我可以如何解决这个问题。

编辑: 我能否澄清一下,我已经尝试使用 wget 和 curl 并且两个文件都错过了这条线。

编辑:

[x@x scripts]$ curl --version
curl 7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
Protocols: tftp ftp telnet dict ldap http file https ftps 
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz 
[x@x scripts]$ wget --version
GNU Wget 1.11.4 Red Hat modified

Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://www.gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Originally written by Hrvoje Niksic <hniksic@xemacs.org>.
Currently maintained by Micah Cowan <micah@cowan.name>.

【问题讨论】:

  • 你怎么知道这条线真的在那里?
  • 我去mysite.com/page.html...查看源代码...
  • 如果您使用浏览器查看 DOM 源,它可能与从服务器下载的实际源中的内容不同。例如,Javascript 可以在文档下载后对其进行转换。
  • 我正在查看页面未渲染的源代码。

标签: curl wget


【解决方案1】:

对于发生的事情有两种可能的解释:

  1. 服务器查看用户代理并决定不包含此行。这是两者中可能性较小的一种,但 wget 允许您更改用户代理字符串,因此您应该能够轻松解决它。
  2. 长线是在客户端上使用 JavaScript 构建的。这更有可能,但不幸的是,在命令行环境中复制并不容易。

要进行验证,请使用Fiddler 等工具查看实际通过网络传输的内容。

【讨论】:

  • 你是怎么做到的?如果您使用浏览器加载页面,然后从菜单中选择“查看源代码”,则您不会看到来自服务器的原始字节。
【解决方案2】:

编写 wget/curl 的版本。那条线的长度是多少?

【讨论】:

    【解决方案3】:

    为什么不使用 curl OR wget ?两者都是很好的工具!

    【讨论】:

      猜你喜欢
      • 2018-04-25
      • 1970-01-01
      • 2011-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-21
      • 2021-10-12
      相关资源
      最近更新 更多