Решаема ли задача курлом?

Статус
В этой теме нельзя размещать новые ответы.

phillip

Полезный
Регистрация
4 Сен 2007
Сообщения
411
Реакции
15
Некий сайт раз в секунду отдает страницу. каждый раз новый контент.
Я хочу успеть собрать каждую секунду, и засунуть в свою БД.
Возможно ли это сделать курлом? У кого какие соображения. Как обеспечить высокую скорость
 
  • Заблокирован
  • #2
Думаю можно...если пинг и размер страницы небольшой. Т.е. если время скачивания и сохранения страницы будет меньше секунды, то можно обойтись однопоточным курлом.
 
я б все таки изначально делал с многопоточным курлом. т.к. на пинг особой надежды никогда нет, да и сайт может поменять периоды вылачи
 
  • Заблокирован
  • #6
Мультикурл юзайте.
По-другому наврятли получится. Секунда - не время.
Просто придётся сделать проверку на одинаковость страниц.
 
Да какой мультикурл, зачем здесь? Здесь и без курла вообще можно:
PHP:
set_time_limit(0);
do {
   $buf = file_get_contents('http://site.com/url.htm');
   $md5 = md5($buf);
   if (!file_exist("files/$md5.htm")) {
      fwrite(fopen("files/$md5.htm",'w'), $buf);
   }
   sleep(1);
} while(1);
Потом запускаешь десяток копий этого скрипта и вуаля. Они тебе будут параллельно долбиться на сайт раз в секунду, и весь новый новый контент сохранять в папочку files (если никто другой еще не сохранил). И пусть работают себе одновременно..

Намного легче, чем парить себе мозг с мультикурлом.
 
  • Заблокирован
  • #8
Намного легче, чем парить себе мозг с мультикурлом.
Верно, если размер страницы небольшой и у тс не медленный интернет. Ведь есть страницы, которые грузятся дольше секунды (не картинки и т.д. и т.п, а сам html исходник страницы)
 
Верно, если размер страницы небольшой и у тс не медленный интернет. Ведь есть страницы, которые грузятся дольше секунды (не картинки и т.д. и т.п, а сам html исходник страницы)
А не важно, сколько грузится сама страница. Пусть она грузится полминуты, а данные на ней меняются каждую секунду. Вот мы запросили одну страницу - сидим полминуты ее грузим. Во втором процессе в это же время запросили ее еще раз - и тоже грузим. Там будет или такая же страница (если мы из двух потоков успели сделать запрос в одну и ту же секунду), или уже другая. Если процессов много - значит многие будут грузить одно и то же, но зато ничего не пропустят. Если мало - шансов пропустить больше, но зато и дублей скачиваться будет меньше.

А дальше - вот процесс скачал себе за полминуты страничку, подождал секунду (не понятно, зачем, ну да ладно, не критично) - и пошел за новой страничкой. Эта новая будет уже +31 к предыдущей, но ведь остальные процессы не дремали, и успели промежуточные 30 начать качать.

Данная стратегия не рассмативает ситуацию, когда сам сервер генерит страницу больше 1й секунды, т.к. в данном случае "каждую секунду меняется контент" не имеет смысла.
 
  • Заблокирован
  • #10
Ну так а задача добиться загрузки каждую секунду.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху