Как создать такой парсер?

Busgame
На сайте с 10.07.2011
Offline
24
4886

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

Веб-сайт -> внутренняя страница (сравнение с шаблоном, если подходит, сведения собираются в бд) -> внутренняя страница (сравнение с шаблоном, если не подходит, переходим дальше) -> и так путешествие по всему сайту.

Прошу дать наводку, на каком языке это лучше всего реализовать и какую библиотеку использовать. Буду рад любой ссылке или мысли, спасибо.

P.S: работаю в php, изучал cURL, но нужного так и не нашел, возможно тыкните пальцем на справку или еще куда.

D
На сайте с 14.01.2007
Offline
153
#1

а в чём проблема с

Busgame:
работаю в php, изучал cURL
?
sunca
На сайте с 05.12.2010
Offline
77
#2

Вам приём определённый нужен или задача под какой-то конкретный сайт?

O3
На сайте с 17.11.2008
Offline
127
#3

php+curl+preg_match_all

Busgame
На сайте с 10.07.2011
Offline
24
#4
Вам приём определённый нужен или задача под какой-то конкретный сайт?

Нужен скрипт (бот), который в автоматическом режиме будет сканировать страницу, проверять ее на соответствие заданному шаблону, и если такое найдено, заносить сведения об этой странице в базу данных. Если же соответствие не найдено, переход по любой внутренней ссылке на другую страницу и повторение этого алгоритма.

---------- Добавлено 28.12.2012 в 21:19 ----------

Dinozavr:
а в чём проблема с ?
нужного так и не нашел

Может быть выписку из справки (или еще откуда) дадите по моей теме.

D
На сайте с 14.01.2007
Offline
153
#5

Busgame, так скажите в чём у вас проблема? там больше curl и regexp ничего не надо

M
На сайте с 17.05.2007
Offline
99
#6

Еще ajax можно добавить, чтоб не нарваться на max execution time.

Портал WebDev - все о разработке сайтов (http://www.webdev.ru)
Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#7
mixar:
Еще ajax можно добавить, чтоб не нарваться на max execution time.

Можно подробней? Что, где, зачем, почему, для чего?

ТС`у:

В основе Вашей хотелки лежит рекурсия.

1) получаем курлом главную страницу

2) собираем все ссылки. Тут немного засада, ссылки могут быть как абсолютные, так и относительные, ну и естесно на другие сайты, также линки могут быть не тока в теге <a> но еще и картинками бла-бла-бла... Это Вы все должны прочекать регулярными выражениями.

3) Теперь мы имеем массив ссылок.

4) По этому массиву проходимся, проверяем на соответствием шаблону, и если надо, также как с главной страницы собираем линки.

За Вас тут никто писать не будет - инфа 100%.

Основная сложность в чеке и выборе ссылок из контента.

Удачи:)

Подпись))
Busgame
На сайте с 10.07.2011
Offline
24
#8

Dinozavr уже не в чем, направление уловил. Буду более глубоко изучать curl и регулярные выражения.

Милованов Ю.С, тут вы немного не поняли. Отправная точка - главная страница, но возвращаться к ней более одного раза (собсно старта) не нужно. То есть написанный скрипт будет бесконечно гулять по внутренним ссылкам, лишь изредка заглядывая на главную страницу. Но опять же, направление понято.

Нужны curl'ы и реги.

За Вас тут никто писать не будет - инфа 100%

Очевидно как бы.

izbushka
На сайте с 08.06.2007
Offline
110
#9
Busgame:
Отправная точка - главная страница, но возвращаться к ней более одного раза (собсно старта) не нужно.

Нужно вести базу ссылок, т.к. на одну страницу могут разные ссылаться. Посещенные ссылки помечать в базе. Таким образом повторов не будет

Busgame
На сайте с 10.07.2011
Offline
24
#10
izbushka:
Нужно вести базу ссылок, т.к. на одну страницу могут разные ссылаться. Посещенные ссылки помечать в базе. Таким образом повторов не будет

При помощи чего можно запоминать посещенные ссылки?

Сразу прошу прощения, если задаю вопросы, ответы на которые очевидны.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий