| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Помогите с регуляркой |
| Автор: systemIV 31.8.2011, 11:28 | ||
| Давно не писал парсеров, а снипов или каких то примеров не осталось. Помогите пожалуйста с регуляркой, вот что у меня вырисовывается, но ответ приходит нулевой.
Подскажите, где здесь косяк? |
| Автор: s0lman 31.8.2011, 12:00 |
| А что должно в итоге получиться? |
| Автор: systemIV 31.8.2011, 12:04 |
| Ну в итоге мне нужно отпарсить ссылки |
| Автор: s0lman 31.8.2011, 12:26 | ||
как вариант
как-то так |
| Автор: systemIV 31.8.2011, 14:07 |
| s0lman, спасибо, помогло. А вот ещё такой вопрос, как увеличить скорость?? Возможно я не так применяю парсер. Его алгоритм примерно такой: 1. В цикле перебираю все страницы до последней 2. Инициализирую курл с УРЛ где подставляется номер страницы из цикла. 3. Из полученной страницы через регулярные выражения отбираю УРЛы на страницы. 4. Создаю цикл перебора полученых страниц, где также инициализирую ещё один экземпляр КУРЛа 5. Через регулярку во втором экземпляре записываю нужные мне данные в массив. Возможно стоило бы заменить регулярки на простой реплейс, но может есть более очевидные техники? |
| Автор: enoff 1.9.2011, 22:42 |
| по поводу регулярок и простых функций - по сравнению с тратами на скачивание страниц, время на разбор в разы меньше. экземпляр курла можно оставить один, менять только url. можно использовать multi_curl, запускать дочерние скрипты фоном и т.д., но жутко это все неудобно. если любыми целями требуется ускорить работу парсера, то придеться извращаться. ну и ширину канала увеличить, самый заметный прирост будет. и при больших объемах (да и вообще в подобных скриптах) лучше уничтожать данные, которые больше не нужны. курл и сам пять жрет не слабо, и данных можно много насобирать. лучше сразу делать, а потом сложновато будет исправлять, пхп он такой |
| Автор: systemIV 10.9.2011, 00:44 |
| Не хотел создавать новый топик. Мне нужно из тега TITLE и с самой страницы получить инфу. Хочу оформить это всё единой регуляркой. Но вот возник вопрос, ведь между тегом заголовка и инфой которую мне нужно получить огромное пространство. как можно обозначить весь этот ненужный контент в регулярке?? |
| Автор: voral 10.9.2011, 09:37 |
| А зачем именно одной? Не достаточно данных для ответа. А каким выражением вы хотите найти данные "с самой страницы"? Имхо, тут надо рассматривать конкретный случай и подобрать подходящий механизм, чтоб ".*" не вобрало в себя и нужный контент |
| Автор: Absinthe 10.9.2011, 11:08 | ||
Есть такуя штука - профилирование(profiling). Она укажет, где косяк производительности. В данном случае в сети.
|
| Автор: systemIV 12.9.2011, 18:00 | ||||
| По совету перешёл на сокеты. Но вопрос снова не в этом) Как можно с помощью регулярки(желательно одной)
Получить массив этих строк
|