Поиск на сайте внешних ссылок и их анкоров

Поиск на сайте внешних ссылок и их анкоров

Задача: по файлу sitemap.xml обойти все станицы сайта и найти все внешние ссылки, составить таблицу с адресами станиц и найденными на них url c анкорами.

Решение:

Лучше использовать локальный сервер (denwer, mamp) т.к. процесс ресурсоемкий и обычный хостинг его не потянет.

Скрипт не учитывает «закрытые» ссылки с rel="nofollow" и <noindex>.

<?php
// Локаль.
setlocale(LC_ALL, 'ru_RU');
date_default_timezone_set('Europe/Moscow');
header('Content-type: text/html; charset=utf-8');
mb_internal_encoding('UTF-8');
mb_regex_encoding('UTF-8');
mb_http_output('UTF-8');
mb_language('uni');

// Отключение лимитов памяти и времени.
ini_set('memory_limit', '2000M');
set_time_limit(0);

$domеn = 'snipp.ru';
$pt = '/<a (.*?)href=[\"\']([a-z0-9]+)\:\/\/(?!'.$domеn.')(.*?)\/?(.*?)[\"\'](.*?)>(.*?)<\/a>/i';

$xml = simplexml_load_file('http://snipp.ru/sitemap');
foreach ($xml->url as $row) {
	$url = strval($row->loc);
	$html = file_get_contents($url);
	preg_match_all($pt, $html, $matches);
	if (!empty($matches)) {
		foreach ($matches[4] as $i => $ur) {
			if (!strstr($ur, $domеn)) {
				$out .= '
				<tr>
					<td>' . $url . '</td>
					<td>' . $matches[2][$i] . '://' . $ur . '</td>
					<td>' . $matches[6][$i] . '</td>
				</tr>';
			}
		}
	}
}

echo '<table cellspacing="0" border="1" cellpadding="5">' . $out . '</table>';
PHP

Результат:

Результат поиска внешних ссылок

19.04.2018, обновлено 15.02.2020
2474

Комментарии

, чтобы добавить комментарий.

Другие публикации

Рекомендации по SEO настройке сайта
Сборник рекомендаций по настройке сайта помогающий исключить проблемы при индексировании поисковыми системами.
8841
+5
Пример парсинга html-страницы на phpQuery
phpQuery – это удобный HTML парсер взявший за основу селекторы, фильтры и методы jQuery, которые позволяют...
62078
+25
Оплата заказов на сайте через Робокассу
В данной статье описан процесс оплаты заказа на сайте с помощью Робокассы. Перед тем, как преступить работе над...
23775
+8
Автоматическое сжатие и оптимизация картинок на сайте
Изображения нужно сжимать для ускорения скорости загрузки сайта, но как это сделать? На многих хостингах нет...
28142
+8
Переезд сайта на HTTPS
В последнее время вопрос переезда сайта с HTTP на HTTPS перешел из рекомендаций в необходимость, как со стороны поисковиков, так и браузеров.
4636
+1
RSS-файл для Яндекс Турбо-страниц
Турбо-страницы позволяют пользователям посмотреть легкую версию сайта, которая загружается быстрее в десятки раз, а...
22743
+7