Esempio n. 1
0
        static void Main(string[] args)
        {
            WebHeaderCollection Header = new WebHeaderCollection();

            Header.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0");
            Header.Add(HttpRequestHeader.Accept, "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
            Header.Add(HttpRequestHeader.AcceptLanguage, "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3");
            //Header.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br");
            Header.Add(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded");
            Header.Add(HttpRequestHeader.Referer, "https://www.google.ru");

            WebQuery avito = new WebQuery();

            avito.Headers = Header;
            avito.GET("https://www.avito.ru");
            string       kvartiry           = avito.GET("https://www.avito.ru" + avito.ResponceUri.AbsolutePath + "/" + "kvartiry");
            HtmlDocument hiddenFieldsString = new HtmlDocument();

            hiddenFieldsString.LoadHtml(kvartiry);

            NameValueCollection filter = new NameValueCollection();
            string sField          = hiddenFieldsString.DocumentNode.SelectSingleNode("//input[@name='s']").GetAttributeValue("value", "101");
            string tokenValueField = hiddenFieldsString.DocumentNode.SelectSingleNode("//input[@class='js-token']").GetAttributeValue("value", "0");
            string tokenNameField  = hiddenFieldsString.DocumentNode.SelectSingleNode("//input[@class='js-token']").GetAttributeValue("name", "token[0]");
            string sgtdField       = hiddenFieldsString.DocumentNode.SelectSingleNode("//input[@name='sgtd']").GetAttributeValue("value", "");

            filter.Add("s", sField);
            //filter.Add(Ke)
            filter.Add(tokenNameField, tokenValueField);
            filter.Add("sgtd", sgtdField);
            filter.Add("category_id", "24");
            filter.Add("location_id", "637640");//"641780"
            filter.Add("name", "");
            filter.Add("params[201]", "");
            filter.Add("pmin", "");
            filter.Add("pmax", "");
            filter.Add("bt", "on");
            string filt      = avito.GetPostBody(filter);
            string aprtments = avito.POST("https://www.avito.ru/search", filter);
            Avito  av        = new Avito();

            //av.SetFilter("Квартиры");
            av.Query.Headers = Header;
            string w = av.GetFilterParams(24);

            av.Filter.Add("category_id", "24");
            av.Filter.Add("location_id", "641780");
            av.Filter.Add("name", "");
            av.Filter.Add("params[201]", "");
            av.Filter.Add("pmin", "");
            av.Filter.Add("pmax", "");

            string       filt1      = av.Query.GetPostBody(av.Filter.Params);
            string       aprtments1 = avito.POST("https://www.avito.ru/search", av.Filter.Params);
            HtmlDocument pages      = new HtmlDocument();

            pages.LoadHtml(aprtments1);
            int pageNumber = 0;
            HtmlNodeCollection maxPageNumber = pages.DocumentNode.SelectNodes("//a[@class='pagination-page']");

            pageNumber = maxPageNumber.Count == 0 ? 1 :Convert.ToInt32(Regex.Match(maxPageNumber[maxPageNumber.Count - 1].GetAttributeValue("href", "1"), @"(?<=[\s\S]*?p=)[\s\S]+").Value);
            string p2 = avito.GET(avito.ResponceUri + "?p=2");

            //for (int i=1;i<=)
        }