Как правильно скачать страницу с помощью curl_setopt?

#1 26 января 2013 в 10:43
Пишу для сайта парсеры кинотеатров. 4 написал осталось 2, не могу с ними ничего придумать.
Пытаюсь скачать страницу, вот функция
  1.  
  2. function browser($url){
  3. $c = curl_init();
  4.  
  5. curl_setopt($c, CURLOPT_URL, $url);
  6. curl_setopt($c, CURLOPT_USERAGENT, "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:6.0) Gecko/20100101 Firefox/6.0");
  7. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  8. $res = curl_exec($c);
  9. return $res;
  10. }
  11.  
  12. .....
  13. function kinomax(){
  14. $index = browser('http://www.kinomax.ru/ryazan/');
  15. .....
  16.  
Если просто перейти по этой ссылке, то страница соответственно открывается без проблем, но функция скачивает страницу не целиком, именно фильмы то и не скачиваются, поскольку на странице-оригинале фильмы подгружаются на аяксе.

Как можно скачать страницу с фильмами, может кто подсказать?
#2 26 января 2013 в 10:51
Мб, так?
kinomax.ru/schedule/schedule.php?cinemaID=ryazan
#3 26 января 2013 в 10:54
lokanaft, спасибо. Я как бы пока постигаю азы парсинга. Один вопрос, в этой ссылке www.kinomax.ru/schedule/schedule.php?cinemaID=ryazan получается с помощью get передается id города?
#4 26 января 2013 в 11:00
Отсюда туда передаётся: kinomax.ru/ryazan/. Видимо у них такая идентификация наглядная.
#5 26 января 2013 в 11:02
а как можно вытащить за сегодняшнюю дату?
#6 26 января 2013 в 11:12
а вообще то ладно, я по другому выберу нужные даты.
lokanaft, спасибо большое
#7 26 января 2013 в 11:12
Если уж начали, то капайте, разбирайтесь — главное набраться опыта. Уж слишком простые вещи вы спрашиваете.
#8 26 января 2013 в 11:13
lokanaft, я если честно с парсерами вчера только начал разбираться)
#9 26 января 2013 в 11:26
Ну начните с того, что каждый фильм в блоке <div class="filmdesc clearboth">, потом выводятся не только сегодняшние фильмы, но и анонс. Значит, перебирая все блоки, надо искать строки с: <td class="week-day">Сб, 26.01</td> и соответственно брать время.
Вроде разбираетесь, а такие вещи спрашиваете, либо я не понял, что конкретно вы хотите scratch
#10 26 января 2013 в 11:41
дополню, если нужно передать какие-то параметры через POST,-

  1. curl_setopt ( $putcurl, CURLOPT_POST, true );
  2. curl_setopt ( $putcurl, CURLOPT_POSTFIELDS, $post_fields );
иногда полезно передать реферера:

  1. curl_setopt ( $putcurl, CURLOPT_REFERER, 'http://kinomax.ru');
#11 26 января 2013 в 11:59

либо я не понял, что конкретно вы хотите

lokanaft
я тоже так и решил сделать. А хотел я изначально скачать страницу с уже сегодняшней датой. Выбрать то я выберу.
#12 28 января 2013 в 14:34
Не могу теперь скачать эту страницу www.5zvezd.ru/schedule/#3073:8 (для Рязани). По разному пытался подставлять значения, но ничего не получается.
Подскажите как нужно.
#13 28 января 2013 в 15:03
Уже разобрался. Совет Cruzka, очень помог. Спасибо
#14 28 января 2013 в 15:19

Не могу теперь скачать эту страницу www.5zvezd.ru/schedule/#3073:8 (для Рязани). По разному пытался подставлять значения, но ничего не получается. Подскажите как нужно.

Rossoman
сомневаюсь что подгрузите по ссылке, так как данные генерируются через аякс
#15 28 января 2013 в 15:24
по ссылке нет, но получилось сделать так
  1.  
  2. function browser($url){
  3. $vars = "&CITY_ID=3073&CINEMA_ID=8";
  4. $c = curl_init();
  5. curl_setopt($c, CURLOPT_URL, $url);
  6. curl_setopt($c, CURLOPT_POST, 1);
  7. curl_setopt($c, CURLOPT_POSTFIELDS, $vars);
  8. curl_setopt($c, CURLOPT_USERAGENT, "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:6.0) Gecko/20100101 Firefox/6.0");
  9. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  10. $res = curl_exec($c);
  11. return $res;
  12. }
  13.  
  14. ....
  15.  
  16. function 5stars(){
  17. $index = browser('http://www.5zvezd.ru/schedule/');
  18.  
  19. ....
  20.  
  21.  
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.