linux下载文件填坑

服务器下载文件,可以使用简单的wget命令:

-a<日志文件>:在指定的日志文件中记录资料的执行过程;
-A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔;
-b:进行后台的方式运行wget;
-B<连接地址>:设置参考的连接地址的基地地址;
-c:继续执行上次终端的任务;
-C<标志>:设置服务器数据块功能标志on为激活,off为关闭,默认值为on;
-d:调试模式运行指令;
-D<域名列表>:设置顺着的域名列表,域名之间用“,”分隔;
-e<指令>:作为文件“.wgetrc”中的一部分执行指定的指令;
-h:显示指令帮助信息;
-i<文件>:从指定文件获取要下载的URL地址;
-l<目录列表>:设置顺着的目录列表,多个目录用“,”分隔;
-L:仅顺着关联的连接;
-r:递归下载方式;
-nc:文件存在时,下载文件不覆盖原有文件;
-nv:下载时只显示更新和出错信息,不显示指令的详细执行过程;
-q:不显示指令执行过程;
-nh:不查询主机名称;
-v:显示详细执行过程;
-V:显示版本信息;
--passive-ftp:使用被动模式PASV连接FTP服务器;
--follow-ftp:从HTML文件中下载FTP连接文件。

但是针对某些网站中防止盗链的网站,不能直接获取下载链接,我采用的方法是使用python,获取网页源码的方法如下:

#coding=utf-8
import urllib.request

def gethtml(url):  
    page=urllib.request.urlopen(url)
    html=page.read().decode("utf-8")
    
    return html  
  

    
url="https://www.baidu.com"  

html = gethtml(url)


print(html)

下载文件的方法如下:

小文件下载:

import requests
image_url = "https://www.python.org/image.zip"

r = requests.get(image_url) # create HTTP response object

with open("python_logo.png",'wb') as f:
    f.write(r.content)

大文件下载:

import requests

file_url = "https://www.python.org/image.zip"

r = requests.get(file_url, stream=True)

with open("python.pdf", "wb") as pdf:
    for chunk in r.iter_content(chunk_size=1024):
        if chunk:
            pdf.write(chunk)

传输文件可以使用scp命令

-1  强制scp命令使用协议ssh1  

-2  强制scp命令使用协议ssh2  

-4  强制scp命令只使用IPv4寻址  

-6  强制scp命令只使用IPv6寻址  

-B  使用批处理模式(传输过程中不询问传输口令或短语)  

-C  允许压缩。(将-C标志传递给ssh,从而打开压缩功能)  

-p 保留原文件的修改时间,访问时间和访问权限。  

-q  不显示传输进度条。  

-r  递归复制整个目录。  

-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。   

-c cipher  以cipher将数据传输进行加密,这个选项将直接传递给ssh。   

-F ssh_config  指定一个替代的ssh配置文件,此参数直接传递给ssh。  

-i identity_file  从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。    

-l limit  限定用户所能使用的带宽,以Kbit/s为单位。     

-o ssh_option  如果习惯于使用ssh_config(5)中的参数传递方式,   

-P port  注意是大写的P, port是指定数据传输用到的端口号   

-S program  指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

虽然上面的方法足以解决大多数的问题,但是又由于国外服务器不稳定,scp命令容易挂掉,我采用了python HTTP服务器模式,在远端服务器上开启http服务,方便了文件的传输。

命令如下:

python -m SimpleHTTPServer

参考文档:

1. https://blog.csdn.net/sinat_36246371/article/details/62426444

2. http://man.linuxde.net/wget

3. https://www.cnblogs.com/xuelu/p/4127112.html

猜你喜欢

转载自blog.csdn.net/nineship/article/details/82427143