За последние 24 часа нас посетили 18462 программиста и 1607 роботов. Сейчас ищут 868 программистов ...

Отладка сайта

Тема в разделе "Прочие вопросы по PHP", создана пользователем shurik330, 12 дек 2011.

  1. shurik330

    shurik330 Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    18
    Симпатии:
    0
    Здравствуйте.
    Столкнулся со следующей проблемой.
    Есть 8 сайтов с разными товарами. На каждом из сайтов, примерно по 250 товаров.
    Я спарсил все товары только с одного сайта. По полученной ссылки на товар я спарсил описание и адрес. Отправил все в базу данных.
    Проделывая вышеупомянутые действия вылетала ошибка: Fatal error: Allowed memory size of 73400320 bytes exhausted (tried to allocate 72 bytes) in...
    Решил данную проблему с помощью файла .htaccess (php_value memory_limit 128M). Далее мне нужно провести геокодирование полученных адресов, что еще сожрет памяти. Также остается проделать тоже самое еще с 7-ю сайтами. Я еще не пробовал, но думаю, что хостинг, на котором лежит сайт, не выдержит.
    Как можно выйти из подобной ситуации?
    Можно ли все действия разбить на отдельные файлы и подключить потом их через include или require (есть ли в этом смысл)??
    Или нужно покупать выделенный хостинг??
    Буду очень благодарен всем, кто решит помочь ))
     
  2. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    На локальный веб-сервер спарсить нельзя, а потом просто залить куда нужно?
     
  3. shurik330

    shurik330 Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    18
    Симпатии:
    0
    Просто парсер запускается с помощью cron каждые сутки
     
  4. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    Что-то я немного не понял, это на платном хостинге
    Код (Text):
    1. php_value memory_limit 128M
    такое прописывали в .htacces? Правда работает? :)

    P.S. Даже если запускать скрипт по крону раз в сутки, то не тянуть же все заново...
     
  5. shurik330

    shurik330 Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    18
    Симпатии:
    0
    Да на платном хостинге подобное работает

    Каждый раз парсится все заново, но в базу заносятся только новые товары, а те товары, которых на сайте уже нет - удаляются из базы
     
  6. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    А если будет не 250 товаров, а 2500 товаров, каждый день столько парсить будет тяжело...
     
  7. shurik330

    shurik330 Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    18
    Симпатии:
    0
    Как же быть?
     
  8. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    я бы чисто теоретически использовал YQL когда-то я так и делал, нужно было получать с разных сайтов rss и вот я использовал. данные уже приходили в json было хорошо.
     
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    shurik330, если вы используете парсер, который держит всю структуру в памяти и не освобождает ее, вы обречены на подобные ошибки, сколько бы памяти не запросили.
    переделайте алгоритм так, чтобы данные скидывались в БД как только это становится возможным и затем unset(x). а дальше пусть все связи через SQL делаются.