コード例 #1
0
 public void GetRawDataVK()
 {
     VQueryService vservice = new VQueryService("вашкевич илья", 0, "belarus");
     List<VQueryResult> r = vservice.GetResult();
     //
     if (r.Count != 0) Console.WriteLine("Status OK in VK results");
     //
     int i = 0;
     SocialAPI.Human man = new SocialAPI.Human();
     foreach (var item in r)
     {
         long begin = DateTime.Now.Ticks;
         if (i == 1) break;
         i++;
         Thread.Sleep(2000);
         htmlpage = Social.vk_parsing(man, item.Url);
         SmartAnalyse(true);
         if (string.IsNullOrEmpty(man.site) || man.site.IndexOfAny("абвгдеёжзиклмнопрстуфхцчшщъыьэюя".ToCharArray()) != -1)
         {
             man.site = item.Url;
         }
         lock (_lock)
         {
             humanlist.Add(man);
         }
         TimeSpan span = new TimeSpan(DateTime.Now.Ticks - begin);
         if (span.TotalSeconds < 5)
         {
             int duration = 5 - (int)span.TotalSeconds;
             Console.WriteLine("Result duration" + duration.ToString());
             Thread.Sleep(duration*1000);
         }
     }
 }
コード例 #2
0
 public void GetRawDataSoc()
 {
     VQueryService vservice;
     if (fake.Age != null)
     {
         vservice = new VQueryService(fake.Name, (short)fake.Age, "belarus");
     }
     else
     {
         vservice = new VQueryService(fake.Name, 0, "belarus");
     }
     List<VQueryResult> r = null;
     if (opcode != 1 && opcode != 2) r = vservice.GetResult();
     if (r != null && r.Count > 0)
     {
         int i = 0;
         Thread.Sleep(2000);
         foreach (var item in r)
         {
             long begin = 0;
             Man man = new Man();
             begin = DateTime.Now.Ticks;
             //блокировка до поступления нового человека
             mre.Reset();
             htmlpagevk = man.vk_parsing(item.Url);
             lock (_lock)
             {
                 manlist.Add(man);
             }
             SmartAnalyse(true, i);
             i++;
             //разрешение на обработку данных другим потоком
             mre.Set();
             TimeSpan span = new TimeSpan(DateTime.Now.Ticks - begin);
             if (span.TotalSeconds < 4)
             {
                 int duration = 4 - (int)span.TotalSeconds; 
                 Thread.Sleep(duration * 1000);
             }
         }
     }
     else
     {
         GQueryService gservice;
         List<GQueryResult> g = null;
         if (fake.Location != null)
         {
             gservice = new GQueryService(fake.Name + " " + fake.Location, "my.mail.ru");
         }
         else if (fake.Age != null)
         {
             gservice = new GQueryService(fake.Name + " " + fake.Age, "my.mail.ru");
         }
         else gservice = new GQueryService(fake.Name, "my.mail.ru");
         if (opcode != 2) g = gservice.GetResult();
         if (g != null && g.Count > 0)
         {
             int i = 0;
             foreach (var item in g)
             {
                 if (item.Title.ToLower().Contains(fake.Name.ToLower()))
                 {
                     long begin = 0;
                     Man man = new Man();
                     begin = DateTime.Now.Ticks;
                     //блокировка до поступления нового человека
                     mre.Reset();
                     htmlpagevk = man.mm_parsing(item.Url);
                     lock (_lock)
                     {
                         manlist.Add(man);
                     }
                     SmartAnalyse(false, i);
                     i++;
                     //сигнал о разрешении обработки данных
                     //другим потоком
                     mre.Set();
                     TimeSpan span = new TimeSpan(DateTime.Now.Ticks - begin);
                     if (span.TotalSeconds < 4)
                     {
                         int duration = 4 - (int)span.TotalSeconds;
                         Thread.Sleep(duration * 1000);
                     }
                 }
             }
         }
         else
         {
             if (fake.Location != null)
             {
                 g = new GQueryService(fake.Name + " " + fake.Location, "odnoklassniki.ru").GetResult();
             }
             else if (fake.Age != null)
             {
                 g = new GQueryService(fake.Name + " " + fake.Age, "odnoklassniki.ru").GetResult();
             }
             else g = new GQueryService(fake.Name, "odnoklassniki.ru").GetResult();
             if (g != null && g.Count > 0)
             {
                 int i = 0;
                 foreach (var item in g)
                 {
                     if (item.Title.ToLower().Contains(fake.Name.ToLower()))
                     {
                         long begin = 0;
                         Man man = new Man();
                         begin = DateTime.Now.Ticks;
                         //блокировка до поступления нового человека
                         mre.Reset();
                         htmlpagevk = man.od_parsing(item.Url);
                         lock (_lock)
                         {
                             manlist.Add(man);
                         }
                         SmartAnalyse(false, i);
                         i++;
                         //сигнал о разрешении обработки данных
                         //другим потоком
                         mre.Set();
                         TimeSpan span = new TimeSpan(DateTime.Now.Ticks - begin);
                         if (span.TotalSeconds < 4)
                         {
                             int duration = 4 - (int)span.TotalSeconds;
                             Thread.Sleep(duration * 1000);
                         }
                     }
                 }
             }
         }
     }
     mre.Set();
     //проанализировать на ключевые элементы
     //SmartAnalyse(true, i);
 }