Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python列出HTTP文件和目录_Python_Html_Directory_Ip Address - Fatal编程技术网

Python列出HTTP文件和目录

Python列出HTTP文件和目录,python,html,directory,ip-address,Python,Html,Directory,Ip Address,如果我只有IP地址,如何列出文件和文件夹 使用urllib和其他工具,我只能显示index.html文件的内容。但是如果我想看看哪些文件也在根目录中呢 我正在寻找一个示例,演示如何在需要时实现用户名和密码。(大多数时候index.html是公共的,但有时其他文件不是公共的)。HTTP不适用于“文件”和“目录”。选择不同的协议。另一个答案是,您无法通过HTTP直接获取目录列表。是HTTP服务器“决定”给你什么。有些人会给你一个HTML页面,显示“目录”中所有文件的链接,有些人会给你一些页面(ind

如果我只有IP地址,如何列出文件和文件夹

使用urllib和其他工具,我只能显示
index.html
文件的内容。但是如果我想看看哪些文件也在根目录中呢


我正在寻找一个示例,演示如何在需要时实现用户名和密码。(大多数时候index.html是公共的,但有时其他文件不是公共的)。

HTTP不适用于“文件”和“目录”。选择不同的协议。

另一个答案是,您无法通过HTTP直接获取目录列表。是HTTP服务器“决定”给你什么。有些人会给你一个HTML页面,显示“目录”中所有文件的链接,有些人会给你一些页面(index.HTML),有些人甚至不会将“目录”解释为一个

例如,您可能有一个指向“”的链接http://localhost/user-login/“:这并不意味着在服务器的文档根目录中有一个名为user login的目录。服务器将其解释为指向某个页面的“链接”

现在,要实现您想要的,您要么使用HTTP以外的东西(您想要访问的“ip地址”上的FTP服务器将完成此任务),要么在该机器上设置一个HTTP服务器,为每个路径提供服务(http://192.168.2.100/directory)其中的文件列表(以任何格式)并通过Python进行解析


如果服务器提供了一个“index of/bla/bla”类型的页面(像Apache服务器一样,目录列表),那么您可以解析HTML输出以找出文件和目录的名称。如果没有(例如,自定义index.html、或服务器决定给您的任何内容),则您运气不佳:(,您不能这样做。

使用
请求
获取页面内容,使用
美化组
解析结果。
例如,如果我们在
http://cdimage.debian.org/debian-cd/8.2.0-live/i386/iso-hybrid/

from bs4 import BeautifulSoup
import requests

url = 'http://cdimage.debian.org/debian-cd/8.2.0-live/i386/iso-hybrid/'
ext = 'iso'

def listFD(url, ext=''):
    page = requests.get(url).text
    print page
    soup = BeautifulSoup(page, 'html.parser')
    return [url + '/' + node.get('href') for node in soup.find_all('a') if node.get('href').endswith(ext)]

for file in listFD(url, ext):
    print file

您可以使用以下脚本获取子目录和HTTP服务器目录中所有文件的名称。可以使用文件编写器下载这些文件

从urllib.request导入请求、urlopen、urretrieve
从bs4导入BeautifulSoup
def读取url(url):
url=url。替换(“,“%20”)
req=请求(url)
a=urlopen(req).read()
soup=BeautifulSoup(一个“html.parser”)
x=(soup.find_all('a'))
对于x中的i:
file_name=i.extract().get_text()
url\u new=url+文件名
url\u new=url\u new.replace(“,“%20”)
如果(文件名[-1]='/'和文件名[0]!='.'):
读取url(url\U新建)
打印(url\u新)
阅读url(“www.example.com”)

Zety提供了一个很好的紧凑型解决方案。我将通过使
请求组件更加健壮和功能化来补充他的示例:

导入请求
从bs4导入BeautifulSoup
def get_url_路径(url,ext='',params={}):
response=requests.get(url,params=params)
如果response.ok:
response\u text=response.text
其他:
返回响应。为_状态()引发_
soup=BeautifulSoup(响应文本'html.parser')
parent=[url+node.get('href')表示汤中的节点。如果node.get('href')。endswith(ext)]
返回父级
url='1〕http://cdimage.debian.org/debian-cd/8.2.0-live/i386/iso-hybrid'
ext='iso'
结果=获取url路径(url,ext)
打印(结果)

回答得很好。感谢您的帮助。实际上,index.html为我提供了其他文件和文件夹的名称。也许我可以尝试获取这些文件和文件夹。太好了:)如果是这样,请尝试使用例如BeautifulSoup在python中搜索html解析。也有其他库用于此。此帖子“”应该可以帮助您。。。希望:)