Как получить заголовок веб-страницы с учетом URL-адреса (внешнего URL-адреса) с помощью JQuery/JS
Я новичок, поэтому извините меня, если это глупый вопрос.
Так что я пытался получить заголовок URL-адреса с помощью JQuery/JS. Я не хочу загружать содержимое URL-адреса и затем анализировать теги в нем.
Позвольте мне пояснить, у меня есть набор URL-адресов, например 20, для которых я хочу отображать заголовки.
url, к которым я обращаюсь, не являются текущими URL-адресами, поэтому я не могу использовать js document.title..
поэтому я хочу сделать что-то вроде формы SOMEFUNC.title(URL) и получить его название. Существует ли такая функция?
Ответы
Ответ 1
Вы также можете получить название любой веб-страницы, используя этот API
http://textance.herokuapp.com/title/
$.ajax({
url: "http://textance.herokuapp.com/title/www.bbc.co.uk",
complete: function(data) {
alert(data.responseText);
}
});
Ответ 2
Что-то вроде этого должно работать:
$.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);
}
});
}
Ответ 3
Запрос Crossdomain не работает с ajax, но то, что вы могли бы сделать, это написать script на вашем сервере, который получит заголовок данного сайта.
Если вы используете PHP, вы можете использовать функцию file_get_contents и preg_match, чтобы получить заголовок. Этот парень здесь уже предоставляет код для этого.
http://www.cafewebmaster.com/php-get-page-title-function
Затем в jQuery вы можете добавить это событие или помещать его внутри функции.
//For the purpose of this example let 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);
}
});
Ответ 4
в Excel мы можем использовать формулу, которую мы можем легко получить название из url = IMPORTXML (A24, "//title")
https://www.aplustopper.com/plus-one-previous-year-question-papers-and-answers/