2013-03-06 86 views
0

有沒有方法可以查找某個文件或目錄是否存在於使用http目錄瀏覽的Web服務器上?我有一個網站,其中包含一些文件和目錄。我想遍歷目錄並找到可以位於子目錄中任何位置的給定文件。通常情況下,我們可以在文件系統上使用os.path.isfile("file_name"),但這不適用於HTTP上的目錄瀏覽。我們怎麼做到這一點?在具有目錄瀏覽的網站上遞歸搜索文件

+0

我剛纔注意到你必須張貼在同樣的問題相同的問題 - 你可能想要刪除這些。 – jross 2013-03-06 08:22:10

回答

3

在網絡上做這件事並不像做文件系統那樣直截了當。首先,文件夾列表會有差異,具體取決於它是什麼網絡服務器。所以你必須知道列表是如何格式化的。例如,我注意到w /大部分linux/apache服務器的模式是文件夾以斜槓'/'結尾。父文件夾以斜線開頭,文件夾不...等等...

這只是一個示例(可行),應該讓您開始朝正確的方向發展。要運行示例,您必須安裝BeautifulSoup

import urllib.request 
from bs4 import BeautifulSoup 

def RecurseLinks(base): 

    f = urllib.request.urlopen(base) 
    soup = BeautifulSoup(f.read()) 
    for anchor in soup.find_all('a'): 
     href = anchor.get('href') 
     if (href.startswith('/')): 
      print ('skip, most likely the parent folder -> ' + href) 
     elif (href.endswith('/')): 
      print ('crawl -> [' + base + href + ']') 
      RecurseLinks(base + href) # make recursive call w/ the new base folder 
     else: 
      print ('some file, check if xyz.txt -> ' + href) # save it to a list or return 

# call the initial root web folder 
RecurseLinks('http://somesite-xyx.com.com/directory-browsing/') 
+0

btw,這是Python 3代碼:) – jross 2013-03-06 07:59:49