public void ExcelDoldur(Sirket sirket, Worksheet sayfa1, Workbook Sirketler) //Şirketleri excel tablosuna aktarmak için kullanılan fonksiyon { sutunAdlari.Add("İl"); //il kolonu sutunAdlari.Add("İlçe"); //İlçe kolonu sutunAdlari.Add("Şirket Sektör"); //Sektor kolonu sutunAdlari.Add("Şirket Alt Sektör"); //Alt sektor kolonu sutunAdlari.Add("Şirket Adı"); //Şirket Adı kolonu sutunAdlari.Add("Şirket Tel - 1"); //Şirket Tel kolonu sutunAdlari.Add("Şirket Tel-2"); //Şirket Tel kolonu sutunAdlari.Add("Şirket Mail"); //Mail kolonu sutunAdlari.Add("Şirket WebSite"); //WebSite kolonu sutunAdlari.Add("Şirket Adresi"); //Adresi kolonu sutunAdlari.Add("Şirket Açıklaması"); //Şirket Açıklaması kolonu if (satir == 1) //Excel için ilk sütunları doldurma işlemi { for (int s = 0; s < 11; s++) { Range rangeSutun = (Range)sayfa1.Cells[satir, sutun + s]; //Sutun Atlama işlemi rangeSutun.Value = sutunAdlari[s]; //Sutun adlarını doldurma işlemi } satir++; } Range range = (Range)sayfa1.Cells[satir, 1]; //Sutun Atlama işlemi range.Value = Il; //şirketin bulundugu ilin eklenmesi range = (Range)sayfa1.Cells[satir, 2]; //Sutun Atlama işlemi range.Value = Ilce; //şirketin bulundugu Ilcenin eklenmesi range = (Range)sayfa1.Cells[satir, 3]; //Sutun Atlama işlemi range.Value = sirket.SirketSektor; //Şirket sektörünün eklenmesi range = (Range)sayfa1.Cells[satir, 4]; //Sutun Atlama işlemi range.Value = sirket.SirketAltSektor; //Şirket alt sektörünün eklenmesi range = (Range)sayfa1.Cells[satir, 5]; //Sutun Atlama işlemi range.Value = sirket.SirketAdi; //Şirket adının eklenmesi range = (Range)sayfa1.Cells[satir, 6]; //Sutun Atlama işlemi if (sirket.SirketTel1 == "00") { range.Value = "-"; } else { range.Value = sirket.SirketTel1; //Şirket telinin eklenmesi; } range = (Range)sayfa1.Cells[satir, 7]; //Sutun Atlama işlemi range.Value = sirket.SirketTel2; //Şirket telinin eklenmesi range = (Range)sayfa1.Cells[satir, 8]; //Sutun Atlama işlemi range.Value = sirket.SirketMail; //Şirket mailinin eklenmesi range = (Range)sayfa1.Cells[satir, 9]; //Sutun Atlama işlemi range.Value = sirket.SirketSite; //Şirket sitesinin eklenmesi range = (Range)sayfa1.Cells[satir, 10]; //Sutun Atlama işlemi range.Value = sirket.SirketAdresi; //Şirket Adresinin eklenmesi range = (Range)sayfa1.Cells[satir, 11]; //Sutun Atlama işlemi range.Value = sirket.SirketAciklama; //Şirket açıklamasının eklenmesi satir++; Sirketler.Save(); //Eklenenlerin Kaydedilmesi }
public void SayfaGez(Worksheet Sayfa1, Workbook Sirketler) { int baslangic = Convert.ToInt32(cmbSayfa.Text); if (sayfasayisi == 1) { if (sirketler != null) { sirketler.Clear(); sirketler_.Clear(); } sirketler = driver.FindElements(By.XPath("//html/body/div[3]/section/div/div[2]/div[2]/div/div[2]/div/div/div/div[2]/div/h2/a")).ToList();//Şirket listesi foreach (var item in sirketler) { sirketler_.Add(item.Text); } sayac = 0; SirketSayisi = sirketler.Count; for (int k = 0; k < SirketSayisi; k++)//Şirket sayısı kadar dönen döngü { try { ToplamSirketSayisi++; Sirket sirket = new Sirket(); // Sirket classı //Excele şirketleri eklemek için sirketUrl = "https://www.find.com.tr/Company/" + StringReplace(sirketler_[sayac].ToLower()); //Her şirketin url si driver.Navigate().GoToUrl(sirketUrl); sayac++; try { VeriCek(sirket);//Sirketin Verilerini Çeken fonksiyon } catch (Exception) { sirket.SirketTel1 = "-"; sirket.SirketTel2 = "-"; } if (sirket.SirketTel1 == "-" || sirket.SirketTel2 == "-" || sirket.SirketTel2.Contains("X")) { } //İşe yaramayan şirketlerin elenmesi else { string no1 = "" + sirket.SirketTel1[0] + sirket.SirketTel1[1]; //Şirket telefon no kontrolu string no2 = "" + sirket.SirketTel2[0] + sirket.SirketTel2[1]; //Şirket telefon no kontrolu if (no1 == "05" || no2 == "05") //İşe yarayan şirketlerin alınması için kontrol { foreach (var item in SirketAdlari) { if (item == sirket.SirketAdi) { ExcelKontrol = true; } } if (ExcelKontrol == false) { ExcelDoldur(sirket, Sayfa1, Sirketler);//Verileri excele aktaran fonksiyon } ExcelKontrol = false; } } } catch (Exception) { driver.Quit(); GirisYap(3000); ToplamSirketSayisi++; Sirket sirket = new Sirket(); // Sirket classı //Excele şirketleri eklemek için sirketUrl = "https://www.find.com.tr/Company/" + StringReplace(sirketler_[sayac].ToLower()); //Her şirketin url si driver.Navigate().GoToUrl(sirketUrl); sayac++; try { VeriCek(sirket);//Sirketin Verilerini Çeken fonksiyon } catch (Exception) { sirket.SirketTel1 = "-"; sirket.SirketTel2 = "-"; } if (sirket.SirketTel1 == "-" || sirket.SirketTel2 == "-" || sirket.SirketTel2.Contains("X")) { } //İşe yaramayan şirketlerin elenmesi else { string no1 = "" + sirket.SirketTel1[0] + sirket.SirketTel1[1]; //Şirket telefon no kontrolu string no2 = "" + sirket.SirketTel2[0] + sirket.SirketTel2[1]; //Şirket telefon no kontrolu if (no1 == "05" || no2 == "05") //İşe yarayan şirketlerin alınması için kontrol { foreach (var item in SirketAdlari) { if (item == sirket.SirketAdi) { ExcelKontrol = true; } } if (ExcelKontrol == false) { ExcelDoldur(sirket, Sayfa1, Sirketler);//Verileri excele aktaran fonksiyon } ExcelKontrol = false; } } } } } else if (sayfasayisi == 2)// 2 sayfa olunca yapılacaklar { if (sayfaKontrol == false) { Sayfa2Baslangic = baslangic; sayfaKontrol = true; sayfaKontrol2 = true; } else { Sayfa2Baslangic = 1; } for (int m = Sayfa2Baslangic; m <= sayfasayisi; m++) { if (sirketler != null) { sirketler.Clear(); sirketler_.Clear(); } sirketler = driver.FindElements(By.XPath("//html/body/div[3]/section/div/div[2]/div[2]/div/div[2]/div/div/div/div[2]/div/h2/a")).ToList(); //Şirket listesi foreach (var item in sirketler) //şirket adlarını bi arraye alma { sirketler_.Add(item.Text); } sayac = 0; for (int t = 0; t < sirketler.Count; t++)//şirket sayısı kadar döngü { try { ToplamSirketSayisi++; Sirket sirket = new Sirket(); //Yeni şirket nesnesi sirketUrl = "https://www.find.com.tr/Company/" + StringReplace(sirketler_[sayac].ToLower()); //Her şirketin url si driver.Navigate().GoToUrl(sirketUrl); sayac++; try { VeriCek(sirket);//Sirketin Verilerini Çeken fonksiyon } catch (Exception) { sirket.SirketTel1 = "-"; sirket.SirketTel2 = "-"; } if (sirket.SirketTel1 == "-" || sirket.SirketTel2 == "-" || sirket.SirketTel2.Contains("X")) { } else { string no1 = "" + sirket.SirketTel1[0] + sirket.SirketTel1[1]; //Şirket telefon no kontrolu string no2 = "" + sirket.SirketTel2[0] + sirket.SirketTel2[1]; //Şirket telefon no kontrolu if (no1 == "05" || no2 == "05") //İşe yarayan şirketlerin alınması için kontrol { foreach (var item in SirketAdlari) { if (item == sirket.SirketAdi) { ExcelKontrol = true; } } if (ExcelKontrol == false) { ExcelDoldur(sirket, Sayfa1, Sirketler);//Verileri excele aktaran fonksiyon } ExcelKontrol = false; } } } catch (Exception) { driver.Quit(); GirisYap(3000); ToplamSirketSayisi++; Sirket sirket = new Sirket(); //Yeni şirket nesnesi sirketUrl = "https://www.find.com.tr/Company/" + StringReplace(sirketler_[sayac].ToLower()); //Her şirketin url si driver.Navigate().GoToUrl(sirketUrl); sayac++; try { VeriCek(sirket);//Sirketin Verilerini Çeken fonksiyon } catch (Exception) { sirket.SirketTel1 = "-"; sirket.SirketTel2 = "-"; } if (sirket.SirketTel1 == "-" || sirket.SirketTel2 == "-" || sirket.SirketTel2.Contains("X")) { } else { string no1 = "" + sirket.SirketTel1[0] + sirket.SirketTel1[1]; //Şirket telefon no kontrolu string no2 = "" + sirket.SirketTel2[0] + sirket.SirketTel2[1]; //Şirket telefon no kontrolu if (no1 == "05" || no2 == "05") //İşe yarayan şirketlerin alınması için kontrol { foreach (var item in SirketAdlari) { if (item == sirket.SirketAdi) { ExcelKontrol = true; } } if (ExcelKontrol == false) { ExcelDoldur(sirket, Sayfa1, Sirketler);//Verileri excele aktaran fonksiyon } ExcelKontrol = false; } } } } Thread.Sleep(200); if (m == 1)//Sayfa Değiştirme işlemi { try { string url = "https://www.find.com.tr/List/TumKategoriler/" + ilce + "-" + il + "?Page=2";//Sayfa Değiştirme urlsi driver.Navigate().GoToUrl(url); } catch (Exception) { driver.Quit(); GirisYap(4000); string url = "https://www.find.com.tr/List/TumKategoriler/" + ilce + "-" + il + "?Page=2";//Sayfa Değiştirme urlsi driver.Navigate().GoToUrl(url); } } } } else { if (sayfaKontrol2 == false) { CokSayfa = baslangic; sayfaKontrol2 = true; sayfaKontrol = true; } else { CokSayfa = 1; } for (int a = CokSayfa; a <= sayfasayisi; a++) { if (sirketler != null) { sirketler.Clear(); sirketler_.Clear(); } sirketler = driver.FindElements(By.XPath("//html/body/div[3]/section/div/div[2]/div[2]/div/div[2]/div/div/div/div[2]/div/h2/a")).ToList();//Şirket listesi foreach (var item in sirketler) { sirketler_.Add(item.Text); } sayac = 0; for (int z = 0; z < sirketler.Count; z++)//Şirket sayısı kadar dönen döngü { ToplamSirketSayisi++; try { Sirket sirket = new Sirket(); sirketUrl = @"https://www.find.com.tr/Company/" + StringReplace(sirketler_[sayac].ToLower());//Her şirketin url si driver.Navigate().GoToUrl(sirketUrl); sayac++; try { VeriCek(sirket);//Sirketin Verilerini Çeken fonksiyon } catch (Exception) { sirket.SirketTel1 = "-"; sirket.SirketTel2 = "-"; } if (sirket.SirketTel1 == "-" || sirket.SirketTel2 == "-" || sirket.SirketTel2.Contains("X")) { } else { string no1 = "" + sirket.SirketTel1[0] + sirket.SirketTel1[1]; //Şirket telefon no kontrolu string no2 = "" + sirket.SirketTel2[0] + sirket.SirketTel2[1]; //Şirket telefon no kontrolu if (no1 == "05" || no2 == "05") //İşe yarayan şirketlerin alınması için kontrol { foreach (var item in SirketAdlari) { if (item == sirket.SirketAdi) { ExcelKontrol = true; } } if (ExcelKontrol == false) { ExcelDoldur(sirket, Sayfa1, Sirketler);//Verileri excele aktaran fonksiyon } ExcelKontrol = false; } } } catch (Exception) { driver.Quit(); GirisYap(3000); Sirket sirket = new Sirket(); sirketUrl = @"https://www.find.com.tr/Company/" + StringReplace(sirketler_[sayac].ToLower());//Her şirketin url si driver.Navigate().GoToUrl(sirketUrl); sayac++; try { VeriCek(sirket);//Sirketin Verilerini Çeken fonksiyon } catch (Exception) { sirket.SirketTel1 = "-"; sirket.SirketTel2 = "-"; } if (sirket.SirketTel1 == "-" || sirket.SirketTel2 == "-" || sirket.SirketTel2.Contains("X")) { } else { string no1 = "" + sirket.SirketTel1[0] + sirket.SirketTel1[1]; //Şirket telefon no kontrolu string no2 = "" + sirket.SirketTel2[0] + sirket.SirketTel2[1]; //Şirket telefon no kontrolu if (no1 == "05" || no2 == "05") //İşe yarayan şirketlerin alınması için kontrol { foreach (var item in SirketAdlari) { if (item == sirket.SirketAdi) { ExcelKontrol = true; } } if (ExcelKontrol == false) { ExcelDoldur(sirket, Sayfa1, Sirketler);//Verileri excele aktaran fonksiyon } ExcelKontrol = false; } } continue; } } if (a != sayfasayisi)//Sayfa Değiştirme işlemi { try { string sayfaurl = "https://www.find.com.tr/List/TumKategoriler/" + ilce + "-" + il + "?Page=" + (a + 1);//Sayfa Değiştirme urlsi driver.Navigate().GoToUrl(sayfaurl); } catch (Exception) { driver.Quit(); GirisYap(100); string sayfaurl = "https://www.find.com.tr/List/TumKategoriler/" + ilce + "-" + il + "?Page=" + (a + 1);//Sayfa Değiştirme urlsi driver.Navigate().GoToUrl(sayfaurl); } } } } }
private void VeriCek(Sirket sirket) //Şirket detay sayfasından verileri çeken fonksiyon { sirket.SirketAdi = driver.FindElement(By.XPath("//html/body/div[3]/section/div[1]/div/div/div[2]/div[1]/div[1]/h1")).Text; //Şirket adı sirket.SirketAciklama = driver.FindElement(By.XPath("//*[@id='About']/div[2]/div")).Text; //Şirket Açıklaması sirket.SirketSektorler = driver.FindElements(By.XPath("/html/body/div[3]/section/div[1]/div/div/div[2]/div[2]/ul[1]/li/a/span")).ToList(); //Şirket Sektörleri sirket.SirketAltSektorler = driver.FindElements(By.XPath("/html/body/div[3]/section/div[1]/div/div/div[2]/div[2]/ul[2]/li")).ToList(); //Şirket alt sektorleri foreach (var item in sirket.SirketSektorler) //Sektörlerin birleştirilmesi { if (sirket.SirketSektorler.Count == 1) { sirket.SirketSektor = item.Text; } else if (item != sirket.SirketSektorler[0]) { sirket.SirketSektor += item.Text + "-"; } } foreach (var item in sirket.SirketAltSektorler)//Alt Sektörlerin birleştirilmesi { if (sirket.SirketAltSektorler.Count == 1) { sirket.SirketAltSektor = item.Text; } else if (item != sirket.SirketAltSektorler[0]) { sirket.SirketAltSektor += item.Text + "-"; } } sirket.SirketAdresi = driver.FindElement(By.XPath("//html/body/div[3]/section/div[1]/div/div/div[2]/div[1]/div[1]/div[1]/h2")).Text;//Şirket Adresi try { sirket.SirketTel1 = driver.FindElement(By.XPath("//html/body/div[3]/section/div[1]/div/div/div[3]/div/ul/li[2]/a")).Text;//Şirket Tel if (sirket.SirketTel1 == "Mesaj Gönder") { sirket.SirketTel1 = "-"; } else if (sirket.SirketTel1.Contains("@")) { sirket.SirketMail = sirket.SirketTel1; sirket.SirketTel1 = "00"; telKontrol = true; } } catch (Exception) { try { sirket.SirketTel1 = driver.FindElement(By.XPath("//html/body/div[3]/section/div[2]/div/div/aside/div/div[3]/div[2]/ul/li[1]/a/span/span")).Text;//Şirket Tel } catch (Exception) { sirket.SirketTel1 = "-"; } } try { sirket.SirketTel2 = driver.FindElement(By.XPath("/html/body/div[3]/section/div[2]/div/div/aside/div/div[5]/div[2]/ul/li[2]/a/span/span")).Text;//Şirket Tel } catch (Exception) { sirket.SirketTel2 = "-"; } try { sirket.SirketSite = driver.FindElement(By.XPath("//html/body/div[3]/section/div[1]/div/div/div[3]/div/ul/li[3]/a/text()")).Text;//Şirket Site } catch (Exception) { sirket.SirketSite = "-"; } if (telKontrol == false) { try { sirket.SirketMail = driver.FindElement(By.XPath("//html/body/div[3]/section/div[1]/div/div/div[3]/div/ul/li[2]/a/text()")).Text; //Şirket Mail //html/body/div[3]/section/div[2]/div/div/aside/div/div[5]/div[2]/ul/li[3]/a/span } catch (Exception) { try { sirket.SirketMail = driver.FindElement(By.XPath("//html/body/div[3]/section/div[2]/div/div/aside/div/div[5]/div[2]/ul/li[3]/a/span")).Text; } catch (Exception) { sirket.SirketMail = " - "; } } } telKontrol = false; }