bork75
The Team
- Регистрация
- 21 Июн 2008
- Сообщения
- 1.455
- Реакции
- 734
- Автор темы
- #1
Взял пример парсера с сайта Для просмотра ссылки Войди или Зарегистрируйся и сделал из него парсер с двумя шагами.
- Первый шаг - это забираю с одной страницы url адрес
- Второй шаг - подставляю этот адрес во вторую часть кода и парсю уже нужное на этой странице.
Всё работает, но смущает, что дважды отключаюсь curl_close и дважды прописываю USERAGENT и т.п.
Скрипт обращается на разные страницы одного сайта.
Может нужно что-то убрать или так всё оставить?
- Первый шаг - это забираю с одной страницы url адрес
- Второй шаг - подставляю этот адрес во вторую часть кода и парсю уже нужное на этой странице.
PHP:
<?
// Инициализируем курл
$ch = curl_init('http//sait.ru');
// Параметры курла
curl_setopt($ch, CURLOPT_USERAGENT, 'IE20');
curl_setopt($ch, CURLOPT_HEADER, 0);
// Следующая опция необходима для того, чтобы функция curl_exec() возвращала значение а не выводила содержимое переменной на экран
curl_setopt($ch, CURLOPT_RETURNTRANSFER, '1');
// Получаем html
$text = curl_exec($ch);
// Отключаемся
curl_close($ch);
// Находим и сохраняем нужный фрагмент
preg_match( '/<a>(.*?)<\/a>/is' , $text , $links );
// ------ Вторая часть -----
// Инициализируем курл и вставляем результат из первого парсинга
$ch = curl_init('http//sait.ru'.$links[0]);
// Параметры курла
curl_setopt($ch, CURLOPT_USERAGENT, 'IE20');
curl_setopt($ch, CURLOPT_HEADER, 0);
// Следующая опция необходима для того, чтобы функция curl_exec() возвращала значение а не выводила содержимое переменной на экран
curl_setopt($ch, CURLOPT_RETURNTRANSFER, '1');
// Получаем html
$text = curl_exec($ch);
// Отключаемся
curl_close($ch);
// Находим и сохраняем нужный фрагмент
preg_match( '/<ul><li>(.*?)<\/li><\/ul>/is' , $text , $links );
// Выводим результат на экран
echo $links[0];
?>
Всё работает, но смущает, что дважды отключаюсь curl_close и дважды прописываю USERAGENT и т.п.
Скрипт обращается на разные страницы одного сайта.
Может нужно что-то убрать или так всё оставить?