Разработан парсер, собраны все товарные позиции, категории и изображения с сайта inteksar.ru, настроено автоматическое обновление и выгрузка товаров на tiu.ru. Для заказа этого каталога свяжитесь со мной любым способом, указанным в разделе «Контакты».

Pavel Kocherov
Январь 17, 2015
Завершен проект зеркала eu.nissan.biz, выполнена автоматическая авторизация, реализована возможность залогинивания нескольких пользователей под одним логином, скрытие ненужны блоков на всех страницах.
Pavel Kocherov
Январь 17, 2015
Полность скачаны все товары, картинки, характеристики. Настроена периодическая выгрузка в каталог клиента.
Pavel Kocherov
Январь 5, 2015
Для заказчика разработан парсер сайта sportoptovik.ru и программа-загрузчик контента в его каталог. Категории, товары, цены, изображения — все загружено в полном обеме.
Для покупки этого парсера свяжитесь со мной одним из способов, указанных в разделе «Контакты».
Pavel Kocherov
Январь 2, 2015
Разработан алгоритм поиска организаций по заданным координатам и ключевому слову, поиск email адресов на сайтах организаций. Вы всегда можете связаться со мной для покупки исходников, доработки парсера под ваши нужды.
Pavel Kocherov
Декабрь 29, 2014
Для редактирования hosts в консоли выполняем:
sudo nano /private/etc/hosts
После чего сбрасываем кэш:
dscacheutil -flushcache
Pavel Kocherov
Ноябрь 8, 2014
С помощью этой записи вы сможете настроить анонимный прокси для конкретного ip без авторизации за несколько минут.
Первым делом устанавливаем squid3:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install squid3
Далее идем в директорию с конфиг файлом и делаем резервную копию файла настроек:
cd /etc/squid3
cp squid.conf squid.backup.conf
Заменяем содержимое файла squid.conf:
acl client src ВАШ_IP_С_КОТОРОГО_БУДЕТ_ОСУЩЕСТВЛЯТЬСЯ_ДОСТУП
http_access allow client
http_port 3128
tcp_outgoing_address ВНЕШНИЙ_IP_ВАШЕГО_СЕРВЕРА
forwarded_for off
request_header_access Allow allow all
request_header_access Authorization allow all
request_header_access WWW-Authenticate allow all
request_header_access Proxy-Authorization allow all
request_header_access Proxy-Authenticate allow all
request_header_access Cache-Control allow all
request_header_access Content-Encoding allow all
request_header_access Content-Length allow all
request_header_access Content-Type allow all
request_header_access Date allow all
request_header_access Expires allow all
request_header_access Host allow all
request_header_access If-Modified-Since allow all
request_header_access Last-Modified allow all
request_header_access Location allow all
request_header_access Pragma allow all
request_header_access Accept allow all
request_header_access Accept-Charset allow all
request_header_access Accept-Encoding allow all
request_header_access Accept-Language allow all
request_header_access Content-Language allow all
request_header_access Mime-Version allow all
request_header_access Retry-After allow all
request_header_access Title allow all
request_header_access Connection allow all
request_header_access Proxy-Connection allow all
request_header_access User-Agent allow all
request_header_access Cookie allow all
request_header_access All deny all
Сохраняем, перезагружаем прокси.
service squid3 restart
После этого прокси будет доступен по адресу ВНЕШНИЙ_IP_ВАШЕГО_СЕРВЕРА:3128.
Pavel Kocherov
Сентябрь 25, 2014
В phantomjs 1.9+ есть очень неприятный баг, связанный с тем, что вы не можете кликнуть по-настоящему практически не по какому элементу. Вы можете вызвать событие click() с помощью jQuery, например, но это не заменяет стандартного поведения браузера. Например, кликнув на label в обычном браузере, вы меняете значение чекбокса, привязанного к нему. Здесь этого нет. Так же здесь нет каскадной передачи клика родительским элементам.
Для решения данной проблемы существует следующий хак, проверен лично на avito.ru:
function mouseclick( element ) { //расширяем возможности phantomjs, делаем новую функцию настоящего клика по элементу // create a mouse click event var event = document.createEvent( 'MouseEvents' ); event.initMouseEvent( 'click', true, true, window, 1, 0, 0 ); // send click to element element.dispatchEvent( event ); } page.evaluate( //выполняем яваскрипт на странице, при этом передаем туда созданную ранее функцию function( mouseclick_fn ) { var element = jQuery( "label[for=service_4]" )[0]; mouseclick_fn( element ); }, mouseclick ); setTimeout(function(){ //проверяем результат //обязательно подождите пару секунд после клика по элементу, дайте браузеру сделать то, что вы задумали и пройти всем сопутствующим эвентам }, 2000);
Pavel Kocherov
Август 26, 2014
Любой человек, разрабатывающий интерфейсы, сталкивается с проблемой удобного выбора из огромного списка значений. Если список большой, его неудобно листать, неудобно делать мультиселект.
Прекрасное решение предлагает http://chosen-sass-bootstrap.herokuapp.com/ для Bootstrap. Я как программист, а не дизайнер, безумно рад что сразу, из коробки, идет, помимо отличной функциональности, еще и классный внешний вид.
Преимущества данного решения:
1) Невероятная компактность.
2) Удобный мультиселект.
3) Автозаполнение
4) Гибкий интерфейс callback’ов.
Пример использования можно посмотреть в моей Базе для риелторов
Enjoy!
Pavel Kocherov
Август 26, 2014
Для того чтобы проверить какой процесс сколько потребляет памяти и процессора в командной строке вводим
top
Вы получите постоянно обновляемый список процессов, упорядоченный по загрузке процессора.