gpt4 book ai didi

python - 如何使用 Python Mechanize 从基于 Web 的文件服务器下载文件

转载 作者:太空狗 更新时间:2023-10-30 02:49:46 26 4
gpt4 key购买 nike

我在私有(private) ftp 文件服务器上有一系列文件,我正尝试使用 mechanize 下载这些文件。

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')])

这基本上对应于文件图标链接到文件的链接

我是 Mechanize 的新手。
但是我如何下载链接文件可以从

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 - 如何使用 Python Mechanize 从基于 Web 的文件服务器下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6662774/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com