Помощник
|
Как извлекать ссылки, используя их часть как признак? |
slava34
|
Сообщение
#1
|
|
Через регулярку, но надо, что бы она была универсальная т.е. подставил признак - получил первый url содержащий этот признак.
|
|
|
Witu |
16.2.2012, 14:17;
Ответить: Witu
Сообщение
#2
|
|
|
|
|
pavelsc |
16.2.2012, 15:06;
Ответить: pavelsc
Сообщение
#3
|
|
через регулярные выражения Вы издеваетесь? Ну-ну парсить html регекспами. Для вас даже тема в инете есть что так не надо делать. html agility pack если под visual studio, или phpQuery если под пхп надо. |
|
|
slava34
|
Сообщение
#4
|
|
http://php.net/manual/ru/function.preg-match.php http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%...%BD%D0%B8%D1%8F думаю поможет Возьметесь написать вышеуказанный скриптик? Если да то примерно за сколько? |
|
|
ZhukV |
29.2.2012, 0:25;
Ответить: ZhukV
Сообщение
#5
|
|
Вы издеваетесь? Ну-ну парсить html регекспами. Для вас даже тема в инете есть что так не надо делать. html agility pack если под visual studio, или phpQuery если под пхп надо. Ну вообще то здесь вопрос задали, и не нужно сразу так похамливать.... slava34, есть несколько вариантов. Как для новичка, можете попробовать регулярки, они все же проще но со глюками. Если же нормально делать, я бы взял DOMDocument & DOMXpath Предположем, что у $dom у вас загружен корректно документ (о глюках и их исправлениях - http://api.drupal.org/api/drupal/modules%2...lter_dom_load/7) Знайте, что лучше кидать UTF-8 А делее через XPath обращаемся к тем данным которые нужно: [PHP] $xpath = new DOMXPath($dom); $links = $xpath->query('//a'); $now = 0; while ($link = $links->item($now)) { $now++; print $link->getAttribute('href'); } [/PHP] или же на чистом доме [PHP]$links = $dom->getElementsByTagName('a'); foreach ($links as $link) { print $link->getAttribute('href'); }[/PHP] Лучше всего использовать XPath, так как у него очень сильный функционал. Писал код с фанаря, могут быть очепятки. |
|
|
Witu |
29.2.2012, 7:59;
Ответить: Witu
Сообщение
#6
|
|
pavelsc, вот допустим есть много ссылок на странице примерно такого вида
http://google.com/web/projects/{уникальный_id} http://google.com/web/projects/show/changelog http://google.com/web/projects/{уникальный_id}/changelog и мы хотим вытащить все ссылки в которых есть /projects/{уникальный_id}/changelog как вы это сделаете без регулярки? может быть через for от 0 до 999999999 и проверят strpos'ом? |
|
|
slava34
|
Сообщение
#7
|
|
Ну вообще то здесь вопрос задали, и не нужно сразу так похамливать.... slava34, есть несколько вариантов. Как для новичка, можете попробовать регулярки, они все же проще но со глюками. Если же нормально делать, я бы взял DOMDocument & DOMXpath Большое спасибо, для меня больше подходят регулярки, так как работаю с Xedant Human Emulator, он их хорошо понимает. |
|
|
Den1xxx |
2.3.2012, 12:01;
Ответить: Den1xxx
Сообщение
#8
|
|
Для вас даже тема в инете есть что так не надо делать. С каких пор то, что неизвестно кто написал в интернете, стало автоматически аксиомой? Разбирайте лучше конкретный случай: допустим, в этом случае лучше не писать регулярки. И почему. А то вот мне например непонятно почему — он ведь пытается анализироватьтеги a имеющие определенные признаки допустим href Их можно парсить регуляркой, имхо. Поисковики и браузеры же как-то парсят. А то скатываесь до безосновательных холиваров: «Только Виндовсом нужно пользоваться!» или «Блочная верстка должна использоваться в любом случае!». Смешно. Зы. По ссылке pavelsc нашлась замечательная фраза: Every time you attempt to parse HTML with regular expressions, the unholy child weeps the blood of virgins, and Russian hackers pwn your webapp. Ха-ха. Как они оказывается боятся русских хакеров.Вообще судя по тому что написано ниже, человек просто болен. Психически. Ну или косит под больного. |
|
|
alexdrob |
2.3.2012, 12:26;
Ответить: alexdrob
Сообщение
#9
|
|
С каких пор то, что неизвестно кто написал в интернете, стало автоматически аксиомой? То есть вы должны официально признать высказывание что бы оно стало аксиомой? И при чём тут вообще аксиома? что так не надо делать. Это не аксиома а совет. Разбирайте лучше конкретный случай: допустим, в этом случае лучше не писать регулярки. А он не то же самое сказал? А то скатываесь до безосновательных холиваров: «Только Виндовсом нужно пользоваться!» или «Блочная верстка должна использоваться в любом случае!». Странно, если я делаю сервер игры - я выбираю линукс, если дома для просмотра фильмов и что бы можно было поиграть - я ставлю виндовс. Теперь смотрим данную тему: если нужно получить значение атрибута - то используем DOM. Где тут утверждение что вообще не нужно использовать регулярки в других случаях? |
|
|
Den1xxx |
2.3.2012, 12:34;
Ответить: Den1xxx
Сообщение
#10
|
|
alexdrob, перечитайте еще раз, а то пишете абы что.
[B]pavelsc [/B]сказал, что html вообще нельзя парсить регуляркой , потому что вот здесь есть ссылка. Так вот, это неправда. Html можно парсить регуляркой. |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Вечные ссылки с 300+ СДЛов, тиц до 750, ЯКи, DMOZ, от 1$/ссылка вечные ссылки |
258 | SeoUaSales | 128375 | Вчера, 23:39 автор: FantAlexis |
|
Куплю ссылки тематика steam игры eng | 0 | c4p1t4l15t | 523 | 26.3.2024, 21:57 автор: c4p1t4l15t |
|
Большие ставки для кликов в Я.Директ. Как удешевить? | 2 | rownong27 | 1117 | 26.3.2024, 14:13 автор: knezevolk |
|
SEO Линк Билдинг под Бурж | Вечные ссылки США, Европа и Мир с Гарантией | 18 | Needmylink1 | 6539 | 25.3.2024, 20:51 автор: Needmylink1 |
|
Нужны ссылки с adult сайтов | 3 | TABAK | 8035 | 25.3.2024, 13:44 автор: Wilkinson |
Текстовая версия | Сейчас: 28.3.2024, 18:56 |