gpt4 book ai didi

java - 从基本链接获取 URL 层次结构

转载 作者:行者123 更新时间:2023-12-01 13:53:21 26 4
gpt4 key购买 nike

在提出我的问题(基本上就是标题所说的)之前,我想提供一些背景知识,以便更好地了解我的情况。

我正在用 Java 编写一个小应用程序,主要用于学术目的,但也考虑到一个非常具体的任务。该应用程序的作用基本上是从基本 URL 开始构建 URL 层次结构,然后提供组织链接并对链接执行某些操作的能力。

想象一下以下 URL:

http://www.example.com
http://www.example.com/sub001
http://www.example.com/sub002
http://www.example.com/sub002/ultrasub

我希望我的程序在提供基本 URL http://www.example.com 时检索此层次结构(或http://www.example.com/)。

在我的代码中,我有一个能够对 URL 进行编码的类,并且我已经想到了一种验证它们的方法,但我只是找不到一种方法来找出基本 URL 下的 URL 层次结构。

是否有直接的方法,或者我只需从基本 URL 下载文件并开始从文件中存在的相对和绝对链接构建层次结构?

我并不是要求具体的代码,只是对我可以采取的方式进行(某种程度上)完整的解释,也许还有一些框架代码来指导我。

此外,我将 URL 存储在 TreeMap<URL,Boolean> 中结构,其中Boolean说明 URL 是否已被分析。我在快速浏览了 Java 7 API 规范后选择了这个结构,但是您是否建议任何更适合此特定目的的结构?

提前致谢:)

最佳答案

HTTP 协议(protocol)中无法请求给定 URL“下”的所有 URL。你运气不好。

一些协议(protocol)(例如 ftp://...)确实有明确的机制......

如果您请求“目录”,某些 HTTP 服务器将打印索引页,但不建议这样做,而且没有多少服务器会这样做。

底线是您必须跟踪链接才能确定服务器层次结构是什么,即使这样您也可能找不到指向层次结构所有区域的链接。

编辑:我要补充的是,作为一个行为良好的网民,您应该遵守 robots.txt文件存储在您访问的任何服务器上......

EDIT2:(在对 FTP 机制进行评论之后)FTP协议(protocol)有很多命令:See this wiki list 。命令之一是:NLIST其中“返回指定目录中的文件名列表。”URL specification对 FTP 协议(protocol) URL 的 URL 格式做了特殊规定,在第 3.2.2 节中:

The url-path of a FTP URL has the following syntax: <cwd1>/<cwd2>/.../<cwdN>/<name>;type=<typecode>

....

If the typecode is "d", perform a NLST (name list) command with as the argument, and interpret the results as a file directory listing.

当我从命令行(而不是从浏览器)尝试此操作时,我可以看到效果:

rolf@home ~ $ curl 'ftp://sunsite.unc.edu/README'

Welcome to ftp.ibiblio.org, the public ftp server of ibiblio.org. We
hope you find what you're looking for.

If you have any problems or questions, please see

http://www.ibiblio.org/help/

Thanks!

type=d我得到:

rolfl@home ~ $ curl 'ftp://sunsite.unc.edu/README;type=d'
HEADER.images
incoming
HEADER.html
pub
unc
README

关于java - 从基本链接获取 URL 层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19794220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com