【问题标题】:find base href of a given url查找给定 url 的基本 href
【发布时间】:2012-04-16 23:38:43
【问题描述】:

我正在修改一个简单的 php 爬虫脚本。

它使用的模块之一是将相对 URL 转换为绝对 URL。

为此,我需要找到一种方法来确定给定 url 的基本 href。否则我会得到一堆错误转换的链接。

我需要一个简单的函数来检查一个 url 是否有一个基本的 href 标签,如果有,就返回它。

谢谢

【问题讨论】:

  • “基线 url 标签”是什么意思? :?
  • 谢谢。我编辑了原始帖子。我的意思是'基本href'

标签: php web-crawler baseline


【解决方案1】:

我不知道你到底是什么意思,但parse_url 会给你很多信息,比如主机名、查询字符串等。

如果我对您的理解正确,您不知道您的网址中是否有 http。 parse_url 返回的信息的方案部分是你的朋友。如果 scheme 为空或与 http 不同,您就知道您的 URL 中没有 http。

在爬虫中,您开始爬取特定页面,如果我理解您的问题正确,您会解析该 HTML。只需根据 parse_url 提供的信息构造基本 URL(不带路径),我没有发现任何问题。

【讨论】:

    【解决方案2】:

    我需要一个简单的函数来检查一个 url 是否有一个基本的 href 标签,如果有,就返回它。

    一个 URL 不能有一个基本的 href 标记,因为那是一个 HTML 标记。它可能在您从该 URL 检索的 HTML 中定义。如何阅读可以找到at this question

    【讨论】:

    • 这段代码是我用作参考点的代码。我如何使用相同的过程来获取基本 href?
    • @UnoMeinAme:你在说什么代码?你能更新你的问题吗?
    【解决方案3】:

    parse_url() 将 URL 拆分为多个部分。你可以从中得到你需要的东西。

    【讨论】:

    • 其实没有。 pathinfo 用于拆分文件路径
    • 哦,我的意思是 parse_url!固定。
    • @Griffin 他在谈论一个网络爬虫,所以我想他会阅读例如http://host/products/foobar.html 上的一个页面,其中有 URL(指向其他页面或图像),如images/foobar.jpg。合并后,这将成为 URL http://host/products/images/foobar.jpg,这是不正确的,因为图像在 http://host/images/foobar.jpg 中。所以在foobar.html 页面的某处,有一个<base href="http://host/"> 标签。他想阅读它,以确定所有相对 URL。
    猜你喜欢
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 2021-09-11
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    • 2021-05-31
    相关资源
    最近更新 更多