2016-09-29 47 views
1

有就是同事先后成立了大量文件,我下载的网址,检索位于URL与文件名匹配已知的模式

url = "http://www.some.url.edu/some/dirname/" 

在这个目录里的文件列表,有是预先知道的具有不同文件名模式的大量文件,例如,“subvol1_file1.tar.gz”,“subvol1_file2.tar.gz”等。我将基于它们的文件名选择性地下载这些文件使用fnmatch的模式。

我需要的是一个简单的列表或生成器全部文件名位于dirname。有没有简单的方法来使用,例如,BeautifulSoup或urllib2来检索这样的列表?

一旦我有列表/迭代,我们称之为filename_sequence,我打算用图案与下面的伪代码来下载文件filepat的

filename_sequence = code_needed 
filepat = "*my.pattern*" 
import os, fnmatch 
for basename in fnmatch.filter(filename_sequence, filepat): 
    os.system("wget "+os.path.join(url, basename)) 
+0

您能否显示带有文件名的目录的HTML表示?谢谢。 – alecxe

+0

http://www.some.url.edu/some/dirname/包含所有可用资源的链接,是的。我没有提前列出所有可用资源的清单。但是,我确实有一个已知字符串,它是任何感兴趣的文件名的前缀*。 – aph

+0

'filename_sequence = [所有文件名中的fn的url + fn]'? – zvone

回答

0

不知道这是适用于你的的情况,但是您可以在href属性值上应用正则表达式模式:

import re 

pattern = re.compile(r"subvol1_file\d+\.tar\.gz") 
links = [a["href"] for a in soup.find_all("a", href=pattern)]