免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2763 | 回复: 2
打印 上一主题 下一主题

[学习分享] python调用wget下载https链接文件,但https要登录,而且账号密码带有@字符,url怎么写? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-10-22 17:48 |只看该作者 |倒序浏览
本帖最后由 yaojun2 于 2015-10-22 17:48 编辑

重点:有个https网站需要登录后才能下载他的文件,

并且登录的用户名或密码中包含了@或:字符。

用wget如何下载呢?


简单的情况:
比如有个ftp文件我要下载,这个ftp需要登录。
用户名是:testuser
密码是:testpass
文件地址是:f-t-p://127.0.0.1/file/bin.rar
用wget下载时直接一句搞定: wget f-t-p://testuser:testpass@127.0.0.1/file/bin.rar

这种组合式的URL中,就直接包含了登录的账号和密码,格式就是ftp://用户名:密码@地址

但这样有一个弊端:
当用户名为test@user
登录密码为test:pass
如果写成wget ftp://test@user:test:pass@127.0.0.1/file/bin.rar
里面的多个@或:特殊符号,会引起歧义了。

看wget的帮助文档,有一段信息:
FTP options:
       --ftp-user=USER         set ftp user to USER.
       --ftp-password=PASS     set ftp password to PASS.
       --no-remove-listing     don't remove `.listing' files.
       --no-glob               turn off FTP file name globbing.
       --no-passive-ftp        disable the "passive" transfer mode.
       --retr-symlinks         when recursing, get linked-to files (not dir).
       --preserve-permissions  preserve remote file permissions.

所以问题解决了,可以这样来写  wget --ftp-user="test@user" --ftp-password="test:pass" 127.0.0.1/file/bin.rar

但对于需要用户名和密码登录的https的网站,wget就没有提供可以输入用户名和密码的参数了。
比如我在网上找的这个地址:h-t-t-p-s://tools.cisco.com/CCIE/Schedule_Lab/CCIEOnline/jsp/UpdateProfile_Form.jsp
用wget下载这个文件时,如果用户名和密码不包含特殊字符,可以直接这样:
wget --no-check-certificate h-t-t-p-s://testuser:testpass@tools.cisco.com/CCIE/Schedule_Lab/CCIEOnline/jsp/UpdateProfile_Form.jsp
这样就能下回这个jsp文件了。

但是如果用户名或密码包含@或:这样的特殊字符,这样拼接就不行了。
有没有哪位知道这种情况如何解决呢?

ftp和https链接中加-的原因是因为贴子提示我不能发带URL的内容。

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
2 [报告]
发表于 2015-10-22 21:34 |只看该作者
本帖最后由 lyhabc 于 2015-10-22 21:38 编辑

wget ftp://testuser:testpass@127.0.0.1/file/bin.rar

http容易
wget -c -O UpdateProfile_Form.jsp  http://tools.cisco.com/CCIE/Sche ... ateProfile_Form.jsp

论坛徽章:
0
3 [报告]
发表于 2015-10-23 10:01 |只看该作者
lyhabc 发表于 2015-10-22 21:34
wget f-t-p://testuser:testpass@127.0.0.1/file/bin.rar

http容易

谢谢哥们回复,你应该没看清我的意思。
我现在要解决的是https的下载,而且这个https是要账号和密码登录的。
直接去wget h-t-t-p-s://xxx.xx/test.bin  这样没有登录是没法下载的。
如果把账号和密码组合在这个https链接中,那格式就是wget h-t-t-p-s://user:pass@xxx.xx/test.bin  如果user或pass中就已经包含了:或@的话要如何组合呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP