如何使用Python Mechanize从基于Web的文件服务器下载文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何使用Python Mechanize从基于Web的文件服务器下载文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1533字,纯文字阅读大概需要3分钟。
内容图文
![如何使用Python Mechanize从基于Web的文件服务器下载文件](/upload/InfoBanner/zyjiaocheng/799/631dbac7941e4347b52f4cf432f25906.jpg)
我在私有ftp文件服务器上有一系列文件,我试图使用mechanize下载.
机械化链接对象具有结构
Link(base_url='http://myfileserver.com/cgi-bin/index.cgi', url='index.cgi?page=download&file=%2Fhome%2Fjmyfileserver%2Fpublic_html%2Fuser_data%2Fmycompany%2F.ftpquota', text='Download [IMG]', tag='a', attrs=[('href', 'index.cgi?page=download&file=%2Fhome%2Fjmyfileserver%2Fpublic_html%2Fuser_data%2Fmycompany%2F.ftpquota'), ('class', 'ar')])
这基本上对应于文件图标链接到文件的链接
我是机械化新手.
但是如何下载链接文件可以从中获取
urlparse.urljoin(base_url , url)
将两者结合起来得到:
http://myfileserver.com/cgi-bin/index.cgi?page=download&file=%2Fhome%2Fjmyfileserver%2Fpublic_html%2Fuser_data%2Fmycompany%2F.ftpquota
我不知道该怎么办.
我的原始代码
import mechanize
import subprocess
import urlparse
br = mechanize.Browser()
br.open("http://myfileserver.com/cgi-bin/index.cgi")
br.select_form(nr=0)
br['login'] = "mylogin"
br['password'] = "mypassword"
br.submit()
#print dir(br)
myfiles = []
for alink in br.links():
print alink
myfiles.append(alink)
def downloadlink(l):
print " Trying to download", l.url.split("%2F")[-1]
f=open(l.url.split("%2F")[-1],"w")
myurl = urlparse.urljoin(l.base_url,l.url)
print myurl
# Dont know how to proceed
for linkobj in myfiles:
if "sca" in linkobj.url:
#br.follow_link(text='[IMG]', nr=0)
downloadlink(linkobj)
解决方法:
你可以尝试:
for index, linkobj in enumerate(myfiles):
if "sca" in linkobj.url:
resp = br.follow_link(text='Download [IMG]',nr=0)
content = resp.read()
with open('output%s.txt' % index, 'w') as fo:
fo.write(content)
内容总结
以上是互联网集市为您收集整理的如何使用Python Mechanize从基于Web的文件服务器下载文件全部内容,希望文章能够帮你解决如何使用Python Mechanize从基于Web的文件服务器下载文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。