some image

[Выполнено] Парсер inteksar.ru; копия каталога

Обо всем

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

[Выполнено] Зеркало eu.nissan.biz с автоматической авторизацией

Проекты

Завершен проект зеркала eu.nissan.biz, выполнена автоматическая авторизация, реализована возможность залогинивания нескольких пользователей под одним логином, скрытие ненужны блоков на всех страницах.

[Выполнено] Парсер sportoptovik.ru, наполнение магазина контентом

Обо всем

Для заказчика разработан парсер сайта sportoptovik.ru и программа-загрузчик контента в его каталог. Категории, товары, цены, изображения — все загружено в полном обеме.

Для покупки этого парсера свяжитесь со мной одним из способов, указанных в разделе «Контакты».

[Выполено] Парсер Google Maps

Проекты

Разработан алгоритм поиска организаций по заданным координатам и ключевому слову, поиск email адресов на сайтах организаций. Вы всегда можете связаться со мной для покупки исходников, доработки парсера под ваши нужды.

linux debian настройка анонимного прокси

Обо всем

С помощью этой записи вы сможете настроить анонимный прокси для конкретного 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.

phantomjs click event, клик на любом элементе страницы не работает

Обо всем

В 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);

Autocomplete для списков, стилизация списков, умные списки

Обо всем

Любой человек, разрабатывающий интерфейсы, сталкивается с проблемой удобного выбора из огромного списка значений. Если список большой, его неудобно листать, неудобно делать мультиселект.
Прекрасное решение предлагает http://chosen-sass-bootstrap.herokuapp.com/ для Bootstrap. Я как программист, а не дизайнер, безумно рад что сразу, из коробки, идет, помимо отличной функциональности, еще и классный внешний вид.
Преимущества данного решения:
1) Невероятная компактность.
2) Удобный мультиселект.
3) Автозаполнение
4) Гибкий интерфейс callback’ов.

Пример использования можно посмотреть в моей Базе для риелторов

Enjoy!

Проверить использование памяти linux debian

Обо всем

Для того чтобы проверить какой процесс сколько потребляет памяти и процессора в командной строке вводим

top

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