如何使用JQuery / JS获取URL(外部URL)的网页标题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用JQuery / JS获取URL(外部URL)的网页标题相关的知识,希望对你有一定的参考价值。

我是新手,如果这是一个愚蠢的问题,请原谅。

所以我尝试的是使用JQuery / JS获取URL的标题。我不想加载网址的内容,然后在其中解析标签。

让我更清楚一点,我有一组网址,比方说20我要显示标题..我所指的网址不是当前的网址,所以我不能使用js document.title ..

所以我想做一些SOMEFUNC.title(URL)的形式并得到它的标题。有这样的功能吗?

答案

您还可以使用此API获取任何网页的标题

http://textance.herokuapp.com/title/

$.ajax({
      url: "http://textance.herokuapp.com/title/www.bbc.co.uk",
      complete: function(data) {
        alert(data.responseText);
      }
});
另一答案

这样的事情应该有效:

$.ajax({
  url: externalUrl,
  async: true,
  success: function(data) {
    var matches = data.match(/<title>(.*?)</title>/);
    alert(matches[0]);
  }   
});

TheSuperTramp是正确的,如果externalUrl不在您的域中,则上述操作无效。而是创建这个php文件get_external_content.php:

<?php
function file_get_contents_curl($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

$url = $_REQUEST["url"];
$html = file_get_contents_curl($url);

preg_match('/<title>(.+)</title>/',$html,$matches);
$title = $matches[1];

echo  json_encode(array("url" => $url, "title" => $title));

然后在javascript中:

function getTitle(externalUrl){
  var proxyurl = "http://localhost/get_external_content.php?url=" + externalUrl;
  $.ajax({
    url: proxyurl,
    async: true,
    success: function(response) {
      alert(response);
    },   
    error: function(e) {
      alert("error! " + e);
    }
  });
}
另一答案

跨域请求不适用于ajax,但您可以做的是在服务器上编写一个脚本来获取给定站点的标题。

如果您使用的是PHP,则可以使用file_get_contents和preg_match函数来获取标题。这家伙已经为它提供了代码。

http://www.cafewebmaster.com/php-get-page-title-function

然后在jQuery中,您可以将其添加到事件或将其放在函数中。

//For the purpose of this example let's use google
var url = "http://www.google.com";

$.ajax({
  type: "POST",
  url: "./getURLTitle.php",
  data: "{url: "" + url + ""}",
  success: function(data) {
     //do stuff here with the result
     alert(data);
  }   
});

以上是关于如何使用JQuery / JS获取URL(外部URL)的网页标题的主要内容,如果未能解决你的问题,请参考以下文章

jQuery获取URL的GET参数值

Node.js,如何从我必须在其中输入用户名和密码的某个 url 获取 JSON 元素?

如何在 jquery 中调用外部 url?

有没有开源方法能直接获取url的参数值

js外部样式如何导入

使用 JQuery 从外部源获取 XML