gpt4 book ai didi

php - 抓取页面时,如何从 或 属性中获取完整的 URL

转载 作者:行者123 更新时间:2023-11-28 22:04:18 25 4
gpt4 key购买 nike

我实际上使用的是 PHP,但这种抓取可以通过任何编程语言完成。迎合很多情况会有点困难。请帮我看看这个问题,请给我一些建议,看看我是否正朝着正确的方向前进。

我所知道的是当前的 url 地址,我可以从中获取来自 <a href=" 的链接列表。或来自 <frame src=" .

我做的是:从当前的url地址,我可以首先得到root url,例如,从http://www.abc.com/def , 我可以得到 http://www.abc.com第一的。这是迎合情况<a href="/fff.html" ,所以我必须先知道根 url。

其次,我需要从当前的url获取url目录,这有点困难,我仍然不知道如何完美地完成它。例如,来自 http://www.abc.com/def/xyz.htm ,它的url目录是http://www.abc.com/def .这是迎合情况<a href="../../xyz.html"> .

我面临的问题是,如何获取当前的url目录?例如,如果当前 url 是 http://www.abc.com/def ,我怎么知道 def 是一个目录还是一个文件?如果 def 是文件,则 url 目录将为 http://www.abc.com .但是如果 def 是一个目录,那么 url 目录就是 http://www.abc.com/def .

可以说,如果最后有“/”,那么就是目录。但从我的角度来看,当我抓取网页时,我无法真正确保网页构建器会在目录 url 的末尾添加“/”。一个目录 url 是完全有效的,例如,如果 def 是一个目录,那么 http://www.abc.com/def可能代表 http://www.abc.com/def/index.html .

因为很难知道是否 http://www.abc.com/def是目录或脚本文件,那么很难从相对 href 中生成完整的 url,例如 <a href="xyz.html"> .

我是不是把问题复杂化了?有什么解决办法吗?

还有其他情况,例如 href="# 表示 anchor ,然后我将其附加到当前 url 的末尾。对于任何当前 url 情况是否正确且有效?意思是,对于以下情况是否有效当前url是http://www.abc.com/def(def是一个目录),http://www.abc.com/def#xyz会被转换成http://www.abc.com/def/index.html#xyz吗?

对于 href="javascript: 或 href="vbscript: 等,我将忽略它。

对于 href="xyz.???",如果 ???是图像文件、exe 文件或任何无效的 html 文件,我将忽略它们吗?

谢谢。

问题可能有点乱,希望我解释清楚。

最佳答案

域名后的任何内容都可以映射到配置域的人想要的任何内容。

不能保证以 .html 结尾的 URL 指的是某处文件系统上的真实文件,或者它将返回有效的 HTML 或其他任何内容。

您可以任意决定将 def/ 算作目录或文件名的一部分,无论您喜欢什么,因为任何选择都同样正确。

关于php - 抓取页面时,如何从 <a href> 或 <frame src> 属性中获取完整的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7459106/

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