2014-01-03 3 views
-1

Я открыл страницу .php с сайта с кучей гиперссылок на нем. Я хочу скопировать их (их URL-адреса) в файл .txt. Конечно, я мог бы сделать это вручную, но их слишком много, поэтому я хотел бы сделать это как-то автоматически.Как получить все ссылки с .php-страницы?

Прежде чем я сделаю это так: я бы посмотрел на источник страницы, то есть на свой HTML-код, а затем проанализировал его небольшим скриптом, написанным специально для этого. Но это страница .php, и все ссылки отправляются из базы данных на сервере, я думаю, а не из исходного кода. Во всяком случае, они не находятся в HTML-коде страницы.

Интересно, возможно ли это. Я считаю, что это должно быть возможно - все ссылки отображаются на моем экране, все они доступны по клику и работают, должен каким-то образом их каким-то образом их захватить.

+1

Вы можете использовать тот же скрипт для разбора ссылок. Вы попробовали это? –

+0

Если они не отображаются в источнике, то они добавляются javascript, а не php – Steve

+1

Вы пробовали [preg_match_all] (http://php.net/preg_match_all)? –

ответ

3

Я понимаю, что вы хотите сделать это из самого браузера: в этом случае используйте панель отладки chrome open (нажмите F12) и перейдите на вкладку консоли и вставьте следующий код и нажмите клавишу ввода, а затем скопируйте список ссылок из консоли и поместите в txt-файл.

var tags = document.getElementsByTagName("a"); 
for(var i=0;i<tags.length;i++) { 
    console.log(tags[i].getAttribute("href")); 
} 
+1

Убедитесь, что ваша консоль отфильтрована для всех, а не отладка. [См. Изображение - Chrome] (http://i.imgur.com/kxEil4x.png) –

+0

WOW !!! Он работал именно так! Спасибо. Можете ли вы, пожалуйста, сказать, на каком языке написан ваш код? – brilliant

+0

это просто Javascript :) –

0

Что вам нужно сделать.

Используйте библиотеку CURL php, чтобы получить страницу в виде строки. Или еще лучше использовать file_get_contents

http://au1.php.net/file_get_contents

$homepage = file_get_contents('http://www.example.com/');

Используйте библиотеку DomDocument для создания документа HTML. http://au1.php.net/domdocument

$doc = new DOMDocument(); 
$doc->loadHTML($homepage); 

Отсюда вы можете получить все <a> тегов в HTML и получить HREF элементов. По вызову $elements = $doc->getElementsByTagName("a");

Затем просто перебирайте элементы, получающие href.

foreach($elements as $el) { 
    $link = $el->getAttribute("href"); 
    echo $link . "\n"; 
} 
//untested code 

Затем вы можете повторно использовать скрипт на любой странице, просто измените запрос на завивание.

Смежные вопросы