Skip to content

OpenCart опечалил жуткими тормозами при заливке в него 128259 товаров. Мускульные запросы, мать их.

Варианты оптимизации изложенные в инете не помогли. Бида-бида.

Буду импортировать меньше товаров, а там глядишь и выход найдётся.

 

UPD 25.07.2013: Выход нашелся :) Отключаем к хуям подсчет товаров в категориях (просто из админки это сделать - недостаточно, надо править код, чтобы функция ничего не делала и просто возвращала 0)

И еще понадобилось переписать плагин "Последние товары", т.к. именно он грузил страницу. Я взал мускульный запрос из модуля "Популярные товары", немного дополнил его и запихнул в "Последние товары". Всё работает, 130641 товаров - полёт нормальный.

Кароче ёба.

Петон - пиздатый. Но у него есть свои особенности.

Хочешь чтобы не было проблем с utf8 - в начале файла объяви:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

Чтобы при выполнении скрипта не было пиздежа вроде "SyntaxError: Non-ASCII character блаблабла" - переменные обращай в utf8, например:

vendorcode=info.text.encode('utf-8')

В случае если у нас не программа, выводящая hello world - юзаем блядские отступы табуляцией.

Вот этот исходник не правильный, и интерпретатор свалится при попытке выполнить его:

for event, element in etree.iterparse('list.xml', tag="item"):
id=element.get('id').encode('utf-8')
for info in element.iter():
if info.tag in ('vendorCode'):
vendorcode="123"

А такой - правильный:

for event, element in etree.iterparse('list.xml', tag="item"):
        id=element.get('id').encode('utf-8')
        for info in element.iter():
                if info.tag in ('vendorCode'):
                        vendorcode="123"

После php, bash и прочих - пиздец непривычно писать правильный код.

А еще - знание английского весьма пригодится, т.к. доки - на иглыше. И примеры решения проблем на StackOwerflow - тоже :)

Если парсишь xml и файл большой - minidom'ом хрен распарсишь, он жрет много памяти, а когда памяти не хватает - скрипт умирает. У меня получилось наотличненько парсить файл при помощи lxml.
Ставить модули для питона - просто. Сначала ставим pip, а потом уже при помощи него уже всё остальное.
Кстати, lxml в debian ставить надо так:

apt-get install libxslt1-dev libxml2-dev
pip install lxml

 

Вроде всё.

 

budulay

Дохуя плодотворный отпуск получился.

Жзн на этот раз проходила в центре Киева. Почти каждый раз как цыган. Куда табор перекочевал - там и я, ай-нанэ-нанэ.

Цыган Будулай на картинке, какбэ одобряе смену места жительства :)

К слову, табор воздушных цыган был у нас в Battlefield'ах. Они приезжали на танках в ангары и пиздили оттудова самолёты и вертолёты.

Спецвойска специально обученных цыган кароч. Батлфилдамы упрлсись на отличненько. Шутка ли - воевать после обеда и до трёх часов утра.

Танцевали лезгинку, стреляли из пистолета во славу Аллаhа, и Мухаммеда, пророка его.

Отметили ДЕНЬРОЖДЕНИЕ :), обожрались пиццей и киряли шампусик, винисче и жрчик. Пели, пили, ели. Снова стреляли.

Наконец-то посмотрел полностью The World's Fastest Indian. Оказывается что он таки на реальных событиях основан.

Еще хотел посмотреть American Chopper, но этот сериал оказался говняным, на уровне какого-то чемпионата по рестлингу.

На протяжении всего отпуска хуячил парсер xml на python с импортом в БД OpenCart, выгрузка теперь работает в полуавтоматическом режиме, некоторые этапы не удалось пока автоматизировать.

Теперь, после парсинга xml получилось вот это - http://wearfly.com/. Собственно это первый мой дорвей, работает сейчас с admitad :) На admitad люди умудряются заработать по 300к RUB в день, судя по статистике. Хочу так же :)

Уже в конце, направляясь на поезде в сторону Днепропетровска, сидел рядом с соседкой в очках, читающей какую-то книгу на французском и делающей пометки в блокноте. Вспомнился прон с учительницами :)

Обновили на одном хосте Zabbix agent до 2-й версии.

Хост перестал быть виден с сервера :)

При увеличении debuglevel до предела - нифига не писало, кроме

...continue reading "Неочевидности"

В InstantCMS код sape можно добавить в файл шаблона следующим образом:

{php}
     if (!defined('_SAPE_USER')){
        define('_SAPE_USER', 'SAPEUSERIDHERE');
     }
     require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
     $sape = new SAPE_client();
     echo $sape->return_links();
{/php}

Вот тут, я ранее писал про собственно выгрузку базы Роскомнадзора.

Теперь пришло время офигительных парсеров :)

 

Скрипт для парсинга (Скрипты, как парсинга, так и выгрузки - не мои, я просто немного переделал то что нашел в интернетах.):

...continue reading "Парсинг реестра запрещенных сайтов zapret-info.gov.ru"

π