preg_match выбрать URL с другого сайта - PullRequest
3 голосов
/ 28 января 2010

Я хочу выбрать все URL-адреса каталогов с этого сайта .

Я выполнил предварительное сравнение, но он извлекает весь URL-адрес сайта, это также означает ненужные URL-ссылки.

Рендеринг, вот мой код .

Как получить все ссылки на сайты с этого сайта?

Ответы [ 4 ]

0 голосов
/ 30 января 2010

Я попытался запустить это, и, кажется, работает, только изменил регулярное выражение

<?php
for($i=0;$i<=25;$i++){
    $site_url = "http://www.directorymaximizer.com/index.php?pageNum_directory_list=$i";
    $preg_math =  file_get_contents($site_url);
    $regex = '@-->(https?://[^<]*)<\!--@'; 
    preg_match_all($regex, $preg_math, $matches, PREG_PATTERN_ORDER); 

    foreach($matches as $key=>$val){
    if($val!="" && !is_numeric($val)){
        foreach(array_unique($val) as $key1=>$val1){
            if( $val1!="" && !is_numeric($val1)){

             echo $val1;
             echo "<br />\n";

            }
        }   
    }
}
}
0 голосов
/ 28 января 2010

У меня есть отличный инструмент для создания ключей регулярного выражения.

Перейти проверить RegExr на gskinner.com.

Кроме того, я считаю, что это шаблон, который вы ищете. Для привязки привязки у нее должен быть полный URL, включая домен. Я выведу URL, домен и путь в массиве. Смотри ниже.

preg_match ( '/ HTTP:?.? \ / \ / (Р [а-z0-9 /] + \ [\ W] +), (Р [?. \ / \ \ Ш \ = \ &] + )?) [\ s \ w = "] +> / ', $ site, $ anchors);

$ url = $ anchors ['url'];
$ domain = $ anchors ['domain'];
$ path = $ anchors ['path'];

Дайте мне знать, как это происходит. Я не проверял это, поэтому я прошу прощения, если есть ошибка.

0 голосов
/ 29 января 2010

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

target="_blank">-->the url is here<!--</a>-->

Значение правильного выражения:

@target="_blank">-->(?P<url>.+?)<!--</a>-->@

Где совпадения из первой группы захвата, индексированной под «url», будут содержать - сюрприз - URL. Почему названная группа захвата? Кажется, проще понять, чем ты занимаешься, когда оглянешься на свой код.

0 голосов
/ 28 января 2010

Для этого вам понадобится HTML-парсер . HTML нерегулярен, поэтому регулярные выражения не работают хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...