[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Отладка сайта
shurik330
Здравствуйте.
Столкнулся со следующей проблемой.
Есть 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 (есть ли в этом смысл)??
Или нужно покупать выделенный хостинг??
Буду очень благодарен всем, кто решит помочь ))



Спустя 4 минуты, 57 секунд (12.12.2011 - 15:39) Игорь_Vasinsky написал(а):
чёт ты сложное написал я укладывался в память по умолчанию и парсил 11000 товаров.

тебе нужно пересмотреть алгоритм своего парсера

Спустя 3 минуты, 57 секунд (12.12.2011 - 15:43) shurik330 написал(а):
Цитата (Игорь_Vasinsky @ 12.12.2011 - 12:39)
чёт ты сложное написал я укладывался в память по умолчанию и парсил 11000 товаров.

тебе нужно пересмотреть алгоритм своего парсера

Я пользовался simpleHTMLdom
Это может повлиять?

Спустя 2 минуты, 44 секунды (12.12.2011 - 15:46) Michael написал(а):
может

Спустя 1 минута, 6 секунд (12.12.2011 - 15:47) Игорь_Vasinsky написал(а):
Ооо ещё как!
перепиши на регулярки - увидишь как скорость возрастёт - и памяти жрать не будет.

Спустя 7 минут, 14 секунд (12.12.2011 - 15:54) shurik330 написал(а):
Цитата (Игорь_Vasinsky @ 12.12.2011 - 12:47)
Ооо ещё как!
перепиши на регулярки - увидишь как скорость возрастёт  - и памяти жрать не будет.

Регулярки, т.е как-то так??

$HtmlContant = file_get_contents('http://www.sait.ru');
$Position = strpos($HtmlContant, '<div class="links">');
$HtmlContant = substr($HtmlContant, $Position);
$Position = strpos($HtmlContant, '</div>');
$HtmlContant = substr($HtmlContant, 0, $Position);

echo $HtmlContant;


Или не так?

Спустя 3 минуты, 2 секунды (12.12.2011 - 15:57) Игорь_Vasinsky написал(а):
в основном preg_match() или preg_match_all()
с паттернами для поиска

preg_match("#<div class=\"links\">([^<].*)</div>#iusU", $html);

Спустя 6 минут, 41 секунда (12.12.2011 - 16:04) shurik330 написал(а):
Цитата (Игорь_Vasinsky @ 12.12.2011 - 12:57)
в основном preg_match() или preg_match_all()
с паттернами для поиска

preg_match("#<div class=\"links\">([^<].*)</div>#iusU", $html);

Интересно! Можете дать ссылку на какой-нибудь хороший мануал?

Спустя 24 минуты, 32 секунды (12.12.2011 - 16:29) m4a1fox написал(а):

Спустя 2 минуты, 4 секунды (12.12.2011 - 16:31) m4a1fox написал(а):
Упс! Не туда!

Спустя 2 часа, 14 минут, 57 секунд (12.12.2011 - 18:46) Игорь_Vasinsky написал(а):

Спустя 17 часов, 4 минуты, 44 секунды (13.12.2011 - 11:50) shurik330 написал(а):
Цитата (Игорь_Vasinsky @ 12.12.2011 - 12:47)
Ооо ещё как!
перепиши на регулярки - увидишь как скорость возрастёт  - и памяти жрать не будет.

По поводу регулярных выражений:

<div class="wrap_butGen" style=" float: right; margin: 2px 0 2px 0;"> <a href="http://www.sait.ru/deals/orsiobook-50/">
<div
class="buttonGeneral" style=" padding: 9px 10px 9px 10px;">Подробнее</div>
</a>
</div>


код с сайта. Мне нужно вытащить ссылку (только http://www.sait.ru/deals/orsiobok-50/).
Как через регулярные выражения это можно сделать?

Спустя 28 минут, 26 секунд (13.12.2011 - 12:19) Игорь_Vasinsky написал(а):
попробуй этот паттерн
#(^\"http.*[^\"])#iusU

Спустя 26 минут, 18 секунд (13.12.2011 - 12:45) shurik330 написал(а):
Цитата (Игорь_Vasinsky @ 13.12.2011 - 09:19)
попробуй этот паттерн
#(^\"http.*[^\"])#iusU

так он выберет все ссылки на сайте, а нужно только ссылки на товар.
Они находятся в <div> контейнере со следующими стилями
style=" float: right; margin: 2px 0 2px 0;"



Спустя 2 минуты, 12 секунд (13.12.2011 - 12:47) Семён написал(а):
Игорь,продай ему свой чудо парсер))

Спустя 13 минут, 30 секунд (13.12.2011 - 13:01) Игорь_Vasinsky написал(а):
нет. они все специализированные.

ТС. :D :D :D так ты какой кусок кода дал - я для него и паттерн написал!


#<div class=\"wrap_butGen\" style=\" float\: right; margin\: 2px 0 2px 0;\">\s+<a href=\"([^\"].*)\">#iusU
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.