2016-09-29 46 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)]