Python 通过目录浏览在网站上递归搜索文件

Python 通过目录浏览在网站上递归搜索文件,python,urllib,Python,Urllib,有没有办法通过http目录浏览找到web服务器上是否存在文件或目录?我有一个包含许多文件和目录的网站。我想遍历这些目录并找到一个给定的文件,该文件可以位于子目录中的任何位置。通常我们可以在文件系统上使用os.path.isfile(“file\u name”)来实现这一点,但这不适用于HTTP上的目录浏览。我们怎样才能做到这一点呢?在web上这样做并不像使用文件系统那样简单。首先,文件夹列表中会有差异,这取决于它是什么web服务器。因此,您必须知道列表的格式。例如,我注意到大多数linux/ap

有没有办法通过http目录浏览找到web服务器上是否存在文件或目录?我有一个包含许多文件和目录的网站。我想遍历这些目录并找到一个给定的文件,该文件可以位于子目录中的任何位置。通常我们可以在文件系统上使用
os.path.isfile(“file\u name”)
来实现这一点,但这不适用于HTTP上的目录浏览。我们怎样才能做到这一点呢?

在web上这样做并不像使用文件系统那样简单。首先,文件夹列表中会有差异,这取决于它是什么web服务器。因此,您必须知道列表的格式。例如,我注意到大多数linux/apache服务器的一种模式是文件夹以斜杠“/”结尾,而文件则不是。父文件夹以斜线开头,文件夹不…等等

这只是一个例子(确实有效),应该让你朝着正确的方向开始。要运行该示例,必须安装


在web上这样做并不像使用文件系统那样简单。首先,文件夹列表中会有差异,这取决于它是什么web服务器。因此,您必须知道列表的格式。例如,我注意到大多数linux/apache服务器的一种模式是文件夹以斜杠“/”结尾,而文件则不是。父文件夹以斜线开头,文件夹不…等等

这只是一个例子(确实有效),应该让你朝着正确的方向开始。要运行该示例,必须安装


我刚刚注意到您在同一期上发布了相同的问题–您可能希望删除这些问题。我刚刚注意到您在同一期上发布了相同的问题–您可能希望删除这些问题。
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/')