用wget下载需要用户名和密码认证的网站或者ftp服务器文件
时间:2022-05-03
本文章向大家介绍用wget下载需要用户名和密码认证的网站或者ftp服务器文件,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
虽然我以前经常写爬虫,但毕竟是代码活,复用性非常低,每次得耗十几分钟解析网页并且写好代码。而熟悉linux的朋友都应该了解wget这个神器,有了url之后一行命令即可完成下载。
但真实的需求往往是,需要下载某个ftp服务器里面的多个文件,甚至该ftp服务器需要用户名和密码登录,比如公司给你提供的测序数据结果:
Host: sftp.biotrainee.com.cn or 123.123.123.123Username: 80-78395743Password: 8L5973452TJ0t4tQMPort: 22
诚然,我们可以用winscp或者filezilla等客户端软件下载,但是更多时候我们的数据量非常大,需要直接在服务器用命令行工具下载。
这个时候,就需要学习wget的高级技巧了。
比如之前卫计委搞了一个全国范围的基因检测实验室考察活动,放出的测试数据就是这样下载的:
wget -c -r -np -k -L -p --ftp-user=NCCLBIPT --ftp-password=nccl123456 ftp://211.103.138.229/Illumina_file/Illumina_B17NC/*
再比如http服务器:
斯坦福大学的生物信息学算法课程里面推荐阅读的的所有pdf格式的paper 课程的网址是:http://ai.stanford.edu/~serafim/CS374_2011/ 可以看到,这个网站推荐的文献分成8大类,本身这个网站打开就需要登录用户名和密码: 用户名是CS374-2011加上密码AlgorithmsInBiology
每一篇文献的单独地址是http://ai.stanford.edu/~serafim/CS3742011/papers/Miscellaneoustopics/Self-assemblyofDNA/selfhealingand_proofreading.pdf 类似的格式。
wget -c -r -np -k -L -p -A.pdf --http-user=CS374-2011 --http-passwd=AlgorithmsInBiology http://ai.stanford.edu/~serafim/CS374_2011/papers/
我这里简单解释一下这些参数的意思:
-c -r -np -k -L -p -A.pdf
-c 断点续传-r 递归下载,下载指定网页某一目录下(包括子目录)的所有文件-nd 递归下载时不创建一层一层的目录,把所有的文件下载到当前目录(特殊要求会选择这个参数)-np 递归下载时不搜索上层目录,如wget -c -r www.xxx.org/pub/path/没有加参数-np,就会同时下载path的上一级目录pub下的其它文件 (所以一定要加上这个参数,不然会下载太多东西的)-k 将绝对链接转为相对链接,下载整个站点后脱机浏览网页,最好加上这个参数-L 递归时不进入其它主机,如wget -c -r www.xxx.org/-p 下载网页所需的所有文件,如图片等-A 指定要下载的文件样式列表,多个样式用逗号分隔
至于最后的--http-user=CS374-2011 --http-passwd=AlgorithmsInBiology 就是登录该课程网站需要的用户名和密码
是不是很好用呀,赶快去试一试吧
- 移动端页面按手机屏幕分辨率自动缩放的js
- PYTHON黑帽编程 4.1 SNIFFER(嗅探器)之数据捕获--补充
- es 5 数组reduce方法记忆
- CSS3与动画有关的属性transition、animation、transform对比
- 总结CSS3新特性(Transiton篇)
- 【实战】MS14-068域权限提升漏洞总结
- 总结CSS3新特性(Transform篇)
- Python 黑帽编程 4.2 Sniffer之数据本地存储和加载
- 老司机教你下载tumblr上视频和图片的正确姿势
- 总结CSS3新特性(媒体查询篇)
- 总结CSS3新特性(选择器篇)
- python无线网络安全入门案例【翻译】
- 总结CSS3新特性(颜色篇)
- RedTigers Hackit SQL 注入题解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python使用sys.exc_info()方法获取异常信息
- laravel通用化的CURD的实现
- Laravel修改验证提示信息为中文的示例
- PHP+redis实现微博的推模型案例分析
- Laravel 解决composer相关操作提示php相关异常的问题
- laravel 实现根据字段不同值做不同查询
- php实现获取近几日、月时间示例
- PHP+redis实现微博的拉模型案例详解
- PHP实现微信申请退款功能
- Laravel+Intervention实现上传图片功能示例
- 关于laravel框架中的常用目录路径函数
- Java byte数组操纵方式代码实例解析
- php桥接模式应用案例分析
- PHP设计模式之中介者模式(Mediator Pattern)入门与应用案例详解
- laravel 出现command not found问题的解决方案