Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Помог: 21 раз(а)
Парсер пишу просто, ради опыта. Взял первый попавшийся сайт. Так как раньше подобное делать не пробовал, у меня будет куча вопросов.
Вот пожалуй первые 2.
1) Curl или file_get_contents? Думаю курл, так как там можно отправлять заголовки и.т.д
2) Порядок действий?
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
1) зависит от сайта но может подойти и file_get_contents
2) зависит от задачи вобщето, но в целом: регулярки
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
etoYA
Отправлено: 19 Февраля, 2013 - 14:31:10
Участник
Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Помог: 21 раз(а)
OrmaJever пишет:
2) зависит от задачи вобщето, но в целом: регулярки
Немного не это имел ввиду.
Вот, этот сайт мне попался первым, решил на нем тренироватся.
_http://facte.ru/
Что делать дальше? Верный ход?
1) Нужно получить все ссылки на статьи (в цикле переходить по страницам /page/2/) и собирать их в массив. Как понять, что страница полностью спаршена?
2) Потом пройтись по каждой ссылке и записывать в другой массив/базу информацию?
IstonRU
Отправлено: 19 Февраля, 2013 - 14:32:48
Новичок
Покинул форум
Сообщений всего: 12
Дата рег-ции: Янв. 2013
Помог: 0 раз(а)
Парсер - синтаксический анализатор. Если хочешь изучить данную тему, то читай Ахо "Путь дракона". Пригодится везде. Регулярки для Непонимающих, ИМХО.
etoYA
Отправлено: 19 Февраля, 2013 - 14:35:09
Участник
Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Помог: 21 раз(а)
IstonRU, да не, регулярки я понимаю С ними вопросов особых наверное и не будет. Мне само строение интересно, а в гугле не смотрб, ибо не хочу сразу начать коряво и не правильно писать, чтоб потом переучиватся).
IstonRU
Отправлено: 19 Февраля, 2013 - 14:40:26
Новичок
Покинул форум
Сообщений всего: 12
Дата рег-ции: Янв. 2013
Помог: 0 раз(а)
etoYA, мне когда-то нужно было писать кросс-компилятор для микроЭВМ. Прочитав "Путь дракона", я смог реализовать его, хотя до прочтения, вообще не сталкивался с парсерами. Почитай книгу, там все логично, поймешь и будет тебе счастье.
etoYA
Отправлено: 19 Февраля, 2013 - 14:43:36
Участник
Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Помог: 21 раз(а)
IstonRU, окей) (Добавление)
Ну, этот код с задачей справляется, переходит по страницам и собирает ссылки в массив.
А теперь касательно кода, тут все нормально?
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
etoYA
Незнаю как Вы но для себя я определил следующее поведения парсера:
1. запросы делаем с помощю cURL
2. Результат обрабативаем от формата данных
- JSON - json_decode
- HTML - PhpQuery и подобные
- иногда регулярками
OrmaJever
Отправлено: 19 Февраля, 2013 - 15:23:27
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
etoYA пишет:
1) Нужно получить все ссылки на статьи (в цикле переходить по страницам /page/2/) и собирать их в массив.
Как понять, что страница полностью спаршена?
2) Потом пройтись по каждой ссылке и записывать в другой массив/базу информацию?
1) Первым делом нужно получить список страниц.
2) Получили число страниц (пусть будет $c) затем в цикле (с количеством итераций $c) проходим по каждой страницу и берём оттуда все сылки (preg_match_all).
3) В каждой итерации делаем с этими ссылками что-то. Например записываем в бд или выводим на экран.
Возможно я напишу код для этой задачи, для примера.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
etoYA
Отправлено: 19 Февраля, 2013 - 15:37:32
Участник
Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
etoYA
Отправлено: 19 Февраля, 2013 - 15:59:25
Участник
Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Помог: 21 раз(а)
OrmaJever, ну мне он не для дела нужен А для тренировки). Поэтому пока главное понять суть.
Еще вопрос, вот перешел я по ссылке. Парюсь и никак не могу спарсить контент..
_http://facte.ru/pilot-samolyota-i-vtoroj-pilot-pered-rejsom-obyazany-est-raznye-blyuda.html
OrmaJever
Отправлено: 19 Февраля, 2013 - 16:02:37
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
etoYA вы не первый день на форуме и должны понимать что фраза "никак не получается" должна подкреплятся кодом котором вы это пробуете. В даном случае мне бы на регулярку глянуть.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.