SlideShare a Scribd company logo
1 of 22
CatalogLoader.com

Как сделать 1000 парсеров и
остаться довольным?
Николай Кекиш
Минск - 2014
О компании
- 6 продуктов
- 30 CMS
- 500 проектов
- 2500 клиентов
Слайд
2 из 22

CatalogLoader.com
Парсер извлекает
- категории  продукты
- параметры  комбинации
- картинки

Слайд
3 из 22
История
- просто код
- проект
- скрипты
- версии
Слайд
4 из 22
HtmlAgilityPack
var doc = new HtmlDocument();
doc.Load("file.htm");
var attributes = new List<HtmlAttribute>();

foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])
{
var att = link["href"];
attributes.Add(att);

}

Слайд
5 из 22
Проект (настройки)
<GrabberSettings>
<CategoryLevel1 />
<CategoryLevel2 />

<CategoryLevel3 />
<ShopUrl>http://artans.ru</ShopUrl>
<TypeOfHrefForProducts />
<Charset />
<PaginationTemplate>index.php?page={0}</PaginationTempl
ate>
<ProductsOnPage>1</ProductsOnPage>
<MaxProductsInCategory>0</MaxProductsInCategory>
<PaginationStartIndex>1</PaginationStartIndex>

Слайд
6 из 22
Проект (каталог)
#Men[path]http://www.thehut.com/catalogue/men.list@@1000
##New In[path]http://www.thehut.com/catalogue/men/new-in.list@@1011
###Hoody[path]http://www.thehut.com/catalogue/men/newin.list?searchFilters=SG9vZHkjQ2xvdGhpbmd0eXBlX2NvbnRlbnQ6SG9vZHkhU
mZXN0cmljdGVkOmZhbHNlIQ%3D%3D@@1012
###Jacket[path]http://www.thehut.com/catalogue/men/newin.list?searchFilters=SmFja2V0I0Nsb3RoaW5ndHlwZV9jb250ZW50OkphY2tldC
FSlsdGVyI3Jlc3RyaWN0ZWQ6ZmFsc2Uh@@1013
###Knitwear[path]http://www.thehut.com/catalogue/men/newin.list?searchFilters=S25pdHdlYXIjQ2xvdGhpbmd0eXBlX2NvbnRlbnQ6S25pdH
dlYXIhUmVkOmZhbHNlIQ%3D%3D@@1014

Слайд
7 из 22
Скрипты
public override void RunProduct(RunProductScriptParameters p)
{
product = p.Product;
category = p.Category;
_hpl = (p.Process as
OneProductLoader).State.Proxy.GetHtmlPageLoader("http://mail.ru");
product.ID = Helper.GetHashCodeString(product.Name + product.Url);
if (product.Art == "")
product.Art = _HashCod;

if (_imageNameSku)
product.Image = Helper.MakeImgName2Sku(product.ImageFull);

Слайд
8 из 22
Версия 1
Версия 2
Версия 3
Версия 4
VisualWebGui
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender,
EventArgs e)

{
MyAspxBox a = new MyAspxBox();
a.Dock = DockStyle.Fill;

Слайд
13 из 22

a.Path = "WebForm2.aspx";

this.Controls.Add(a);
}
}
VisualWebGui-2
public class MyAspxBox : AspPageBox

{
protected override void FireEvent(IEvent objEvent)
{
if (objEvent.Type == "message")
{
string s = objEvent["messagetext"];
MessageBox.Show(s);
}
else
{

Слайд
14 из 22

base.FireEvent(objEvent);
}
}
}
VisualWebGui-3
function SendMessage() {
var strMessage = document.getElementById("TextBox1").value;
var objEvent = VWG.Events.CreateEvent("<%= PageContext.Guid %>",
"message");
VWG.Events.SetEventAttribute(objEvent, "messagetext", strMessage);
VWG.Events.RaiseEvents();

}

Слайд
15 из 22
Ext.net
<script runat="server">

protected void Button_Click(object sender, DirectEventArgs e)
{
X.Msg.Alert("Server Time", DateTime.Now.ToLongTimeString()).Show();
}
</script>

Слайд
16 из 22
Ext.net-2
<ext:ResourceManager runat="server"
DirectEventUrl="default.aspx" />
<h1>ImageButton Control Variations</h1>

<h2>Simple ImageButton</h2>
<ext:ImageButton
runat="server"
ImageUrl="button.gif"
OverImageUrl="overButton.gif"
DisabledImageUrl="disabled.gif"
PressedImageUrl="pressed.gif">
<DirectEvents>

Слайд
17 из 22

<Click OnEvent="Button_Click" />
</DirectEvents>
</ext:ImageButton>
Особенности
- тестирование
- кэширование
- работа с БД
- задачи + лог

Слайд
18 из 22
Кэширование
- предсказуемая скорость
- управляемость

Слайд
19 из 22
Задачи + лог

Слайд
20 из 22

public class Runnable
public class TaskInfo
запуск из CMD
Работа с БД
- MSSQL, SQL Compact, MySQL
- Http tunnel

Слайд
21 из 22
Спасибо!
Николай Кекиш
nik@catalogloader.com

Программы
для
интернет-магазинов

More Related Content

Similar to CatalogLoader 2014 Belarus Minsk DNUG

Референсная архитектура приложения на ASP.NET MVC
Референсная архитектура приложения на ASP.NET MVCРеференсная архитектура приложения на ASP.NET MVC
Референсная архитектура приложения на ASP.NET MVCAndrew Mayorov
 
ASP.NET MVC за пределами Hello World. Дятлов Александр D2D Just.NET
ASP.NET MVC за пределами Hello World. Дятлов Александр D2D Just.NETASP.NET MVC за пределами Hello World. Дятлов Александр D2D Just.NET
ASP.NET MVC за пределами Hello World. Дятлов Александр D2D Just.NETDev2Dev
 
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...JSib
 
Magento - Антон Капля
Magento - Антон КапляMagento - Антон Капля
Magento - Антон Капляmeet_magento
 
AngularJS. Введение и простые примеры для понимания
AngularJS. Введение и простые примеры для пониманияAngularJS. Введение и простые примеры для понимания
AngularJS. Введение и простые примеры для пониманияIgor Sazonov
 
Knockout.JS на примере 2ГИС-Онлайн
Knockout.JS на примере 2ГИС-ОнлайнKnockout.JS на примере 2ГИС-Онлайн
Knockout.JS на примере 2ГИС-ОнлайнDevDay
 
Web весна 2012 лекция 4
Web весна 2012 лекция 4Web весна 2012 лекция 4
Web весна 2012 лекция 4Technopark
 
ASP.NET MVC - как построить по-настоящему гибкое веб-приложение
ASP.NET MVC - как построить по-настоящему гибкое веб-приложениеASP.NET MVC - как построить по-настоящему гибкое веб-приложение
ASP.NET MVC - как построить по-настоящему гибкое веб-приложениеAlexander Byndyu
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NETVitaly Baum
 
МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5Dima Dzuba
 
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...Andrey Taritsyn
 
API сервиса Яндекс.Вебмастер
API сервиса Яндекс.ВебмастерAPI сервиса Яндекс.Вебмастер
API сервиса Яндекс.ВебмастерСергей Мочалов
 
React со скоростью света: не совсем обычный серверный рендеринг
React со скоростью света: не совсем обычный серверный рендерингReact со скоростью света: не совсем обычный серверный рендеринг
React со скоростью света: не совсем обычный серверный рендерингTimophy Chaptykov
 
Изоморфные приложения и Python - Виталий Глибин, Huntflow
Изоморфные приложения и Python - Виталий Глибин, HuntflowИзоморфные приложения и Python - Виталий Глибин, Huntflow
Изоморфные приложения и Python - Виталий Глибин, Huntflowit-people
 
оптимизация скорости загрузки страницы
оптимизация скорости загрузки страницыоптимизация скорости загрузки страницы
оптимизация скорости загрузки страницыVladimir Romanitchev
 
Mobile Fest#spb 2012
Mobile Fest#spb 2012Mobile Fest#spb 2012
Mobile Fest#spb 2012dmalykhanov
 
#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов
#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов
#6 "Изоморфный фреймворк Catberry.js" Денис РечкуновJSib
 
всплывающее окно при закрытии сайта
всплывающее окно при закрытии сайта  всплывающее окно при закрытии сайта
всплывающее окно при закрытии сайта Olga Pirozhenko
 

Similar to CatalogLoader 2014 Belarus Minsk DNUG (20)

Референсная архитектура приложения на ASP.NET MVC
Референсная архитектура приложения на ASP.NET MVCРеференсная архитектура приложения на ASP.NET MVC
Референсная архитектура приложения на ASP.NET MVC
 
ASP.NET MVC за пределами Hello World. Дятлов Александр D2D Just.NET
ASP.NET MVC за пределами Hello World. Дятлов Александр D2D Just.NETASP.NET MVC за пределами Hello World. Дятлов Александр D2D Just.NET
ASP.NET MVC за пределами Hello World. Дятлов Александр D2D Just.NET
 
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
 
Magento - Антон Капля
Magento - Антон КапляMagento - Антон Капля
Magento - Антон Капля
 
AngularJS. Введение и простые примеры для понимания
AngularJS. Введение и простые примеры для пониманияAngularJS. Введение и простые примеры для понимания
AngularJS. Введение и простые примеры для понимания
 
Knockout.JS на примере 2ГИС-Онлайн
Knockout.JS на примере 2ГИС-ОнлайнKnockout.JS на примере 2ГИС-Онлайн
Knockout.JS на примере 2ГИС-Онлайн
 
Web весна 2012 лекция 4
Web весна 2012 лекция 4Web весна 2012 лекция 4
Web весна 2012 лекция 4
 
ASP.NET MVC - как построить по-настоящему гибкое веб-приложение
ASP.NET MVC - как построить по-настоящему гибкое веб-приложениеASP.NET MVC - как построить по-настоящему гибкое веб-приложение
ASP.NET MVC - как построить по-настоящему гибкое веб-приложение
 
Angular js
Angular jsAngular js
Angular js
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NET
 
МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5
 
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
 
Scorex framework
Scorex frameworkScorex framework
Scorex framework
 
API сервиса Яндекс.Вебмастер
API сервиса Яндекс.ВебмастерAPI сервиса Яндекс.Вебмастер
API сервиса Яндекс.Вебмастер
 
React со скоростью света: не совсем обычный серверный рендеринг
React со скоростью света: не совсем обычный серверный рендерингReact со скоростью света: не совсем обычный серверный рендеринг
React со скоростью света: не совсем обычный серверный рендеринг
 
Изоморфные приложения и Python - Виталий Глибин, Huntflow
Изоморфные приложения и Python - Виталий Глибин, HuntflowИзоморфные приложения и Python - Виталий Глибин, Huntflow
Изоморфные приложения и Python - Виталий Глибин, Huntflow
 
оптимизация скорости загрузки страницы
оптимизация скорости загрузки страницыоптимизация скорости загрузки страницы
оптимизация скорости загрузки страницы
 
Mobile Fest#spb 2012
Mobile Fest#spb 2012Mobile Fest#spb 2012
Mobile Fest#spb 2012
 
#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов
#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов
#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов
 
всплывающее окно при закрытии сайта
всплывающее окно при закрытии сайта  всплывающее окно при закрытии сайта
всплывающее окно при закрытии сайта
 

CatalogLoader 2014 Belarus Minsk DNUG