python 抓包 上传 文件_用于抓取页面信息并上传至sftp的Python实现

使用库 paramiko

安装方法:

pip3 install paramiko

paramiko 用于实现sftp的文件上传(文件下载等操作参见文档)

使用urllib 抓取页面信息

import paramiko

import urllib.request

def ssh_connect(_host, _username, _password,_port):

try:

_ssh_fd = paramiko.SSHClient()

_ssh_fd.set_missing_host_key_policy(paramiko.AutoAddPolicy())

_ssh_fd.connect(_host, username=_username, password=_password,port=_port)

except Exception as e:

print('ssh ' + _username + "@" + _host + " " + str(e))

exit()

return _ssh_fd

def sftp_open(_ssh_fd):

return _ssh_fd.open_sftp()

def sftp_put(_sftp_fd, _put_from_path, _put_to_path):

return _sftp_fd.put(_put_from_path, _put_to_path)

def sftp_get(_sftp_fd, _get_from_path, _get_to_path):

return _sftp_fd.get(_get_from_path, _get_to_path)

def sftp_close(_sftp_fd):

_sftp_fd.close()

def ssh_close(_ssh_fd):

_ssh_fd.close()

def upload_file(_host, _username, _password,_port, _source, _target):

sshd = ssh_connect(_host, _username, _password,_port)

sftpd = sftp_open(sshd)

try:

sftp_put(sftpd, _source, _target)

except Exception as e:

print('ERROR: sftp_pusts -- ' + str(e))

sftp_close(sftpd)

ssh_close(sshd)

def get_page_str(_url):

# 在此处添加对页面数据进行处理的代码

fp = urllib.request.urlopen(_url)

mybytes = fp.read()

mystr = mybytes.decode("utf8")

fp.close()

return mystr

def write_file(_str, _file):

print(_str)

f = open(_file, 'w')

f.write(_str)

f.close()

# sftp地址

HOST_NAME = ''

# sftp端口 一般为22

HOST_PORT = 22

# sftp 用户名

HOST_USERNAME = ''

# sftp 密码

HOST_PASSWORD = ''

# 本地暂存文件地址

SOURCE_FILE = ''

# 上传的目标文件地址

TARGET_FILE = ''

# 抓取的目标地址

URL = 'http://www.cnblogs.com/'

def process():

write_file(get_page_str(URL), SOURCE_FILE)

upload_file(HOST_NAME, HOST_USERNAME, HOST_PASSWORD,HOST_PORT, SOURCE_FILE, TARGET_FILE)

# 运行程序

process()

可以配合bash来定时执行达到实时更新的效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值