Помощник
|
Пишем собственный парсер. PHP для упрощения SEO задач. |
disiyndel
|
Сообщение
#1
|
||
|
|
||
|
|||
x64 |
23.12.2014, 18:11;
Ответить: x64
Сообщение
#2
|
|
preg_match_all('/<a name="(.*)"/', $url, $mathces); это жесть. 1. слишком большая и совершенно ненужная нагрузка на сервер. 2. жадность квантификатора не ограничена (дополнительная нагрузка, т. к. ищется наибольшее совпадение), значит, если ссылка имеет вид: Код <a name="123" href="http://maultalk.com/"> будет выбран вариант: Код 123" href="http://maultalk.com/ быстрее уж через explode('<a name="', $url) + вырезание в цикле от начала до " (либо ещё одно explode('"', $part)). ещё быстрее — strpos() + substr() Сообщение отредактировал x64 - 23.12.2014, 18:15 |
|
|
disiyndel
|
Сообщение
#3
|
|
x64,
Код <a name="123" href="http://maultalk.com/"> Такой вид ссылка в этом случае точно не имеет. Предложите вариант лучше =) -------------------- |
|
|
x64 |
23.12.2014, 18:19;
Ответить: x64
Сообщение
#4
|
|
лучше? что угодно, без регулярных выражений.
регулярки целесообразно использовать на конечные куски текста, а не «сколько получил, с тем и работаю» |
|
|
disiyndel
|
Сообщение
#5
|
|
Цитата быстрее уж через explode('<a name="', $url) + вырезание в цикле от начала до " (либо ещё одно explode('"', $part)). ещё быстрее — strpos() + substr() Можно и так. Даже лучше. Но в данном случае вопрос не стоит в скорости работы. Регуляркой выходит лаконичнее что-ли. Другой человек в мешанину из строковых функций будет втыкать, а регуляркой нагляднее выходит. Если парсить огромные объемы - по-любому надо проводить бенчмарки. Сообщение отредактировал disiyndel - 23.12.2014, 18:42 -------------------- |
|
|
Vladimir-AWM |
23.12.2014, 21:46;
Ответить: Vladimir-AWM
Сообщение
#6
|
|
preg_match_all('/<a name="(.*)"/', $url, $mathces); Код preg_match_all('/<a name="([^"]+)"/', $url, $mathces);
-------------------- |
|
|
I_know |
24.12.2014, 8:22;
Ответить: I_know
Сообщение
#7
|
|
Все велосипеды давно придуманы. Мой любимый PHP Simple HTML DOM Parser.
Сообщение отредактировал I_know - 24.12.2014, 8:24 -------------------- |
|
|
Vladimir-AWM |
24.12.2014, 10:06;
Ответить: Vladimir-AWM
Сообщение
#8
|
|
Я по прывычки всегда регулярками пользуюсь, т.к. для моих целей их вролне хватает. Для большого парсинга и малого кол-во системных ресурсов лучше воспользоваться PHP Simple HTML DOM Parser.
Как я понял ТС для новичков написал данную статью. PHP Simple HTML DOM Parser конечно хорошо, но тут еще новичкам придется подключать доп. библиотеку, знать начальные сведения о DOM и классах что усложнит задачу. На PHP Simple HTML DOM Parser так получается (скачать simple_html_dom.php http://sourceforge.net/projects/simplehtmldom/): Код include("simple_html_dom.php");
$cat = "http://www.liveinternet.ru/rating/ru/genealogy/index.html"; $url = file_get_contents($cat); $html = str_get_html($url); $mathces = array(); foreach($html->find('a[name=]') as $link) { $mathces[] = $link->href; } print_r($mathces); -------------------- |
|
|
Solonik |
24.12.2014, 10:26;
Ответить: Solonik
Сообщение
#9
|
|
А я вместо print_r() использую var_dump(); Ребят есть 100 вариантов решения задачи. Главное результат = работает. И можно вечно обсуждать как лучше придет другой и скажет, что он считает что так лучше.
-------------------- |
|
|
Sanasol |
25.12.2014, 4:15;
Ответить: Sanasol
Сообщение
#10
|
|
Такой жирный профиль на фрилансе у ТСа, но такой говнокод пишет, как-то не складывается вообще это вместе.
|
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Обучение Email Рассылкам + Софт Для Автоматизации (100к в сутки с сервера) | 10 | zennoboss | 4645 | Сегодня, 5:20 автор: Skyworker |
|
SEO-продвижение USA, Europe, Asia под ключ | Dating, Gambling, Essay и 10+ ниш | 3 | Needmylink1 | 1032 | Вчера, 21:26 автор: Needmylink1 |
|
SEO Линк Билдинг под Бурж | Вечные ссылки США, Европа и Мир с Гарантией | 21 | Needmylink1 | 7172 | Вчера, 21:16 автор: Needmylink1 |
|
Посоветуйте массажер для спины и шеи | 9 | Boymaster | 878 | Вчера, 13:56 автор: Vmir |
|
Какой % отказов нормален для сайта? | 14 | Aloof | 3378 | Вчера, 13:50 автор: Vmir |
Текстовая версия | Сейчас: 24.4.2024, 16:02 |