Esempio n. 1
0
        internal List <string> ReturnImagesId(CookieContainer cookie, string url)
        {
            List <string> imagesTovar = new List <string>();

            if (!url.Contains("nethouse"))
            {
                url = url.Replace("http://bike18.ru/", "http://bike18.nethouse.ru/");
            }

            string otv = httpReq.PostRequest(cookie, url);

            if (otv != null)
            {
                string productId = new Regex("(?<=<section class=\"comment\" id=\").*?(?=\">)").Match(otv).ToString();

                otv = httpReq.getRequest(cookie, "https://bike18.nethouse.ru/api/catalog/getproduct?id=" + productId);

                otv = httpReq.getRequest(cookie, "https://bike18.nethouse.ru/api/catalog/productmedia?id=" + productId);
                string objektId = new Regex("(?<=\"objectId\":\").*?(?=\")").Match(otv).Value;

                MatchCollection imagesStrTovat = new Regex("(?<=\"id\":\").*?(?=filters)").Matches(otv);
                if (imagesStrTovat.Count == 0)
                {
                    imagesStrTovat = new Regex("(?<=\"id\":\").*?(?=})").Matches(otv);
                }
                foreach (Match str in imagesStrTovat)
                {
                    if (str.ToString().Contains("type\":\"4\"") || str.ToString().Contains("type\":\"5\""))
                    {
                        string s       = str.ToString();
                        string imageId = new Regex("(?<=:\").*?(?=\",\"objectId)").Match(str.ToString()).ToString();
                        if (imageId == "")
                        {
                            imageId = new Regex(".*?(?=\",\"objectId\":\")").Match(str.ToString()).ToString();
                        }
                        imagesTovar.Add(imageId);
                    }
                }
            }
            return(imagesTovar);
        }
        private void UpdateTovar()
        {
            CookieContainer cookie = nethouse.CookieNethouse(tbLogin.Text, tbPasswords.Text);

            if (cookie.Count == 1)
            {
                MessageBox.Show("Логин или пароль для сайта введены не верно", "Ошибка логина/пароля");
                return;
            }

            string          otv   = httprequest.getRequest("https://bike18.ru/products/category/2180745?page=all");
            MatchCollection tovar = new Regex("(?<=<div class=\"product-link -text-center\"><a href=\").*(?=\" >)").Matches(otv);

            lblVsegoRazdelov.Invoke(new Action(() => lblVsegoRazdelov.Text = tovar.Count.ToString()));
            for (int n = 0; tovar.Count > n; n++)
            {
                lblRazdel.Invoke(new Action(() => lblRazdel.Text = n.ToString()));
                string urlTovar = tovar[n].ToString();
                if (urlTovar == "https://bike18.ru/products/pitbayk-bse-ph10mx-125-17-14" || urlTovar == "https://bike18.ru/products/pitbayk-bse-ssr-atom125")
                {
                    continue;
                }

                List <string> tovarB18 = nethouse.GetProductList(cookie, urlTovar);

                string          miniDescription = tovarB18[7];
                MatchCollection spans           = new Regex("<span.*?</span>").Matches(miniDescription);
                foreach (var s in spans)
                {
                    string span = s.ToString();
                    if (span.Contains("Вступай в нашу ") || span.Contains("ДОСТАВКА") || span.Contains("КОНТАКТЕ") || span.Contains("КРЕДИТ") || span.Contains("Цена на ") || span.Contains("доставка") || span.Contains("гарантия") || span.Contains("скидку") || span.Contains("скидка") || span.Contains("ПОДАРОК") || span.Contains("+") || span.Contains("Цена"))
                    {
                        miniDescription = miniDescription.Replace(span, "");
                    }
                }
                var href = new Regex("<a.*?</a>").Matches(miniDescription);
                foreach (var s in href)
                {
                    string span = s.ToString();
                    miniDescription = miniDescription.Replace(span, "");
                }
                MatchCollection paragraphs = new Regex("<p.*?</p>").Matches(miniDescription);
                foreach (var s in paragraphs)
                {
                    string span = s.ToString();
                    if (span.Contains("Вступай в нашу ") || span.Contains("ДОСТАВКА") || span.Contains("КОНТАКТЕ") || span.Contains("КРЕДИТ") || span.Contains("Цена на ") || span.Contains("доставка") || span.Contains("гарантия") || span.Contains("скидку") || span.Contains("скидка") || span.Contains("ПОДАРОК") || span.Contains("+") || span.Contains("Цена"))
                    {
                        miniDescription = miniDescription.Replace(span, "");
                    }
                }

                miniDescription = miniDescription.Replace("<p><br /></p>", "").Replace("</span></span>", "").Replace("<p></p>", "").Replace("</a>", "");

                string fullText = tovarB18[8];
                if (fullText.Contains("*****@*****.**"))
                {
                    fullText = fullText.Replace("Звоните! Или пишите на почту [email protected]", "");
                }

                tovarB18[7] = miniDescription;
                tovarB18[8] = fullText;

                nethouse.SaveTovar(cookie, tovarB18);
            }
        }
Esempio n. 3
0
        private void ActualSooters()
        {
            ControlsFormEnabledFalse();
            CookieContainer cookieNethouse = nethouse.CookieNethouse(tbLogin.Text, tbPassword.Text);

            if (cookieNethouse.Count == 1)
            {
                MessageBox.Show("Логин или пароль для сайта Nethouse введены не верно", "Ошибка логина/пароля");
                ControlsFormEnabledTrue();
                return;
            }
            tbHistory.Invoke(new Action(() => tbHistory.AppendText("Авторизация пройдена\n")));

            string otvAvtobest = webRequest.getRequestEncod("http://avtobest-moto.ru/?mc=sh&ct=2&ctype_moto=143&page=1");

            string          pagesStr = new Regex("(?<=Страницы:).*(?=</div>)").Match(otvAvtobest).ToString();
            MatchCollection pages    = new Regex("(?<=\">).*(?=</a>)").Matches(pagesStr);
            List <string>   avtobest = new List <string>();
            int             i        = -1;

            tbHistory.Invoke(new Action(() => tbHistory.AppendText("Получение товаров с сайта автобест\n")));
            do
            {
                i++;
                if (i != 0)
                {
                    otvAvtobest = webRequest.getRequestEncod("http://avtobest-moto.ru/?mc=sh&ct=2&ctype_moto=143&page=" + pages[i - 1].ToString());
                }

                MatchCollection tableAvtobestTovar = new Regex("(?<=<tr>)[\\w\\W]*?(?=</tr>)").Matches(otvAvtobest);
                foreach (Match s in tableAvtobestTovar)
                {
                    string str = s.ToString();
                    string art = new Regex("(?<=<td><span class=\"green\">).*?(?=</span>)").Match(str).ToString();
                    string url = new Regex("(?<=<td><a href=\").*(?=\">)").Match(str).ToString();
                    url = "http://avtobest-moto.ru" + url;
                    string price = new Regex("(?<=class=\"red\"><b>).*(?= руб.</b>)").Match(str).ToString();
                    price = price.Replace(" ", "");
                    avtobest.Add(art + ";" + url + ";" + price);
                }
            } while (pages.Count > i);
            tbHistory.Invoke(new Action(() => tbHistory.AppendText("Товары с автобест обработаны\n")));

            List <string> scooters = new List <string>();

            string          otv     = webRequest.getRequest("https://bike18.ru/products/category/skutery-iz-yaponii?page=all");
            MatchCollection product = new Regex("(?<=<a href=\").*(?=\"><div class=\"-relative item-image\")").Matches(otv);

            tbHistory.Invoke(new Action(() => tbHistory.AppendText("Получение товаров с сайта байк18\n")));
            for (int n = 0; product.Count > n; n++)
            {
                string        urlTovar    = product[n].ToString();
                List <string> listProduct = nethouse.GetProductList(cookieNethouse, urlTovar);
                string        article     = listProduct[6].ToString();
                string        priceB18    = listProduct[9].ToString();
                bool          b           = false;
                string        priceAB     = "";
                foreach (string str in avtobest)
                {
                    string[] s         = str.Split(';');
                    string   articleAB = s[0].ToString();
                    priceAB = s[2].ToString();

                    if (article.Contains(articleAB))
                    {
                        b = true;
                        break;
                    }

                    if (!b)
                    {
                        nethouse.DeleteProduct(cookieNethouse, urlTovar);
                        break;
                    }
                }

                if (b)
                {
                    scooters.Add(article);
                    if (priceAB != "" && priceAB != priceB18)
                    {
                        UpdatePriceBike18(cookieNethouse, priceAB, listProduct);
                    }
                }
            }

            tbHistory.Invoke(new Action(() => tbHistory.AppendText("Создание списка новых товаров\n")));

            foreach (string str in avtobest)
            {
                List <string> final     = new List <string>();
                string[]      s         = str.Split(';');
                string        articleAB = s[0].ToString();
                string        urlAB     = s[1].ToString();
                bool          b         = false;
                foreach (string strB18 in scooters)
                {
                    if (articleAB.Contains(strB18))
                    {
                        b = true;
                        break;
                    }
                }

                if (!b)
                {
                    final.Add(urlAB);
                    files.fileWriterCSV(final, "scooters");
                }
            }
            tbHistory.Invoke(new Action(() => tbHistory.AppendText("Файл с новыми товара находиться в папке с программой\n")));
            ControlsFormEnabledTrue();
        }