标签: wget

使用 wget 获取受密码保护的网站(trac wiki 页面)

我想编写一个 bash 脚本,它会通知我有关 trac wiki 时间轴上的更改。不幸的是,我无法“登录”(下次登录需要 cookie)。

wget http://someserver.com/trac/xxx/login \
--save-cookies=cookies --keep-session-cookies

wget http://someserver.com/trac/xxx/login \
--load-cookies=cookies \ 
--save-cookies=cookies.new --keep-session-cookies\
--post-data=user=viroos&password=myPassword
Run Code Online (Sandbox Code Playgroud)

我得到:

Error 400: Bad Request
Run Code Online (Sandbox Code Playgroud)

我也试过 --user --password 选项:

wget --no-check-certificate --user viroos --password myPassword\ 
https://someserver.com/trac/xxx/timeline?ticket=on&changeset=on&milestone=on&wiki=on&blog=on&max=50&daysback=90&format=rss
Run Code Online (Sandbox Code Playgroud)

但这只会下载登录页面。

我究竟做错了什么?

password trac wget

5
推荐指数
1
解决办法
5317
查看次数

逃了!在 wget 的密码参数中

我正在尝试执行这样的操作:

wget --user=foo --password=bar! url
Run Code Online (Sandbox Code Playgroud)

这 !在密码中导致问题。我试过用 \ 转义它,如

--password=bar\!
Run Code Online (Sandbox Code Playgroud)

我试过用单引号和双引号封装。我把密码放在一个单独的文件中并尝试

--密码=cat pass.txt

每次,我都会收到 403 Forbidden。使用 -d,我看到 SSL 握手成功。在 Windows 命令行上,该命令有效。我的假设是我需要逃避 ! 不同,但我不知道还有什么。

bash wget

5
推荐指数
1
解决办法
2万
查看次数

通过基于 .pac 配置的代理服务器使用 wget

我想通过使用 .pac 配置的代理来使用 wget。

当我用谷歌搜索了一下,我发现 .pac 是一个 javascript 文件,wget 无法根据以下 url 解析它

http://www.linuxquestions.org/questions/linux-networking-3/i-want-to-use-wget-configured-with-a-wpad-dat-proxy-636922/

有什么解决办法吗?

提前致谢

wget

5
推荐指数
1
解决办法
1万
查看次数

使用shell脚本进行多线程下载

假设我有一个包含大量 URL 的文件,我想使用任意数量的进程并行下载它们。我怎样才能用 bash 做到这一点?

bash wget curl

5
推荐指数
1
解决办法
8293
查看次数

wget 可以转换本地 html 文档中的链接吗?

我知道 wget 可以获取远程页面及其依赖项并重写 html,以便图像src属性引用新下载的图像。

我正在尝试转换引用 Internet 上图像的本地 html 文件。我正在使用

wget --mirror --page-requisites --convert-links \
     --directory-prefix=foo \
     --force-html \
     --input-file=my_file.html
Run Code Online (Sandbox Code Playgroud)

所有引用的图像都被下载到适当的位置,foo/但没有改变src属性my_file.html

mirroring wget

5
推荐指数
1
解决办法
4207
查看次数

Ubuntu 11.10,使用 wget/curl 因 ssl 失败

在全新安装的 Ubuntu 上,使用 wget 时出现以下错误:

wget https://test.sagepay.com

--2012-03-27 12:55:12--  https://test.sagepay.com/
Resolving test.sagepay.com... 195.170.169.8
Connecting to test.sagepay.com|195.170.169.8|:443... connected.
ERROR: cannot verify test.sagepay.com's certificate, issued by `/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)06/CN=VeriSign Class 3 Extended Validation SSL SGC CA':
Unable to locally verify the issuer's authority.
To connect to test.sagepay.com insecurely, use `--no-check-certificate'.
Run Code Online (Sandbox Code Playgroud)

我试过安装 ca-certificates 并配置 ca-certs,它们似乎都设置在 /etc/ssl/certs.conf 中。

cURL 也存在同样的问题:

curl https://test.sagepay.com

curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify …
Run Code Online (Sandbox Code Playgroud)

ubuntu ssl openssl wget curl

5
推荐指数
1
解决办法
1万
查看次数

curl 和 wget 尝试建立 ipv6 连接

在我的专用服务器(由 OVH 托管)上,运行全新安装的 Ubuntu 14.04,curl 和 wget 需要大约 10 秒才能完成一个简单的请求。

$ curl -v google.com
* Rebuilt URL to: google.com/
* Hostname was NOT found in DNS cache
Run Code Online (Sandbox Code Playgroud)

只有在 10 秒后它才会真正返回一些东西。所以我决定在这个上运行strace

write(2, "Hostname was NOT found in DNS ca"..., 36) = 36
socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 3
close(3)                                = 0
mmap(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f0a24fb8000
mprotect(0x7f0a24fb8000, 4096, PROT_NONE) = 0
clone(child_stack=0x7f0a257b7f70, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f0a257b89d0, tls=0x7f0a257b8700, child_tidptr=0x7f0a257b89d0) = 5047
poll(0, 0, 4)                           = 0 (Timeout)
poll(0, 0, 8) …
Run Code Online (Sandbox Code Playgroud)

domain-name-system ubuntu ipv6 wget curl

5
推荐指数
1
解决办法
1万
查看次数

Wget,自签名证书和 --no-check-certificate 不起作用

我最近在我们的一个 nginx 网络服务器上安装了一个自签名 SSL 证书。如果我尝试 wget 一个文件,--no-check-certificate我会收到以下错误。您可以使用浏览器访问该站点,浏览器会识别出它是自签名的,并且证书会显示所有正确的信息。似乎基于我应该找到一种方法在本地信任证书的消息,但这不会破坏--no-check-certificate的目的吗?

$ wget https://www.example.com/index.html --no-check-certificate
--2015-02-20 14:13:58--  https://www.example.com/index.html
Resolving example.com... 192.0.2.1
Connecting to example.com|192.0.2.1|:443... connected.
WARNING: cannot verify example.com’s certificate, issued by “/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA”:
  Unable to locally verify the issuer’s authority.
WARNING: no certificate subject alternative name matches
    requested host name “example.com”.
HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers.
Retrying.
Run Code Online (Sandbox Code Playgroud)

任何想法将不胜感激。

linux ssl centos openssl wget

5
推荐指数
1
解决办法
2万
查看次数

使用 wget 递归下载时文件名编码/解码错误

我正在使用递归方式从远程目录下载文件wget,无论是谁创建了文件夹和文件,使用了特殊字符,例如èÓ,当我下载指定完整路径+文件名的单个文件时,文件将以其名称正确下载,但是当我只需尝试使用-r文件名未正确编码或解码的选项下载包含所有文件和目录的文件夹。

从我收集到的信息来看,文件名ascii在请求中作为 an发送,并且我的机器和服务器都UTF-8对 进行了编码$PATH,所以它也不应该是一个问题。

当 wget 创建文件时,文件名中的è字符(我将以此为例)保存为\350八进制字符代码,并显示为è. 这只发生在我递归下载文件时,如果我使用完整的 URL 下载这个文件,文件名就会正确显示。

我花了几个小时了相当数量的查找Q / A在这里和那里,我已经尝试了一切我所看到的,从环境--local-encoding--remote-encodingUTF-8,使用--restrict-file-names=nocontrol

端口 21 和 22 已关闭,因此我无法通过 SCP 或 FTP 下载文件,很可能任何其他下载文件的协议都会出现相同的错误,但我可以使用任何不常见的文件.

另外我遇到的主要问题是,当我下载文件时,当我尝试将它们复制到备份文件夹时,由于文件名被弄乱,某些文件有时会给我一个找不到文件的错误,例如现在我使用--restrict-file-names=ascii并保留名称ascii作为解决方法,但我需要将编码更改为UTF-8,而且我无法在机器上安装任何应用程序,例如 convmv(来自老板的命令)。

这是我一直用来下载文件的命令: wget --keep-session-cookies --cookies=on --no-check-certificate --restrict-file-names=nocontrol --convert-links --no-parent -r <URL>

这是通过递归下载单个文件与所有文件来保存文件名的方式:

OT14-004 CEIP Pins del Vallès.vsd

OT14-004 CEIP Pins del Vallès.vsd

我正在使用带有此发行版 …

linux centos wget encoding

5
推荐指数
0
解决办法
4248
查看次数

无法获取 cURL 或 wget 来验证某些 SSL 证书

我注意到我们使用 cURL 的链接检查器越来越频繁地无法验证 SSL 证书。我正在努力追查到底。

例如,https: //www.bgetem.de/ 在我的 Windows 7 机器上的每个浏览器(IE 11、Firefox、Opera、Chrome)上都可以正常打开,但在我的 CentOS 6 和 Ubuntu 16.04 上的 cURL(和 wget)不能验证证书。

这是来自 CentOS (Version curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2) cURL 的详细输出

* About to connect() to www.bgetem.de port 443 (#0)
*   Trying 193.104.3.166... connected
* Connected to www.bgetem.de (193.104.3.166) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* Peer's certificate issuer is not recognized: 'CN=COMODO RSA Domain Validation Secure Server …
Run Code Online (Sandbox Code Playgroud)

ssl wget curl ssl-certificate-errors

4
推荐指数
1
解决办法
7650
查看次数