class Turyap(RealEstate): def __init__(self) -> None: self.offices = [] self.agents = [] self.agentNames = [] self.agentPositions = [] self.agentNumbers_1 = [] self.agentNumbers_2 = [] self.browser = Browser() def getOffices(self) -> None: self.browser.goPage("http://www.turyap.com.tr/ofislerimiz") sleep(3) totalNumber = int( self.browser.getElement( "//div[@id='top_pane']//span[@id='total_number']").text) currentNumber = 0 while totalNumber != currentNumber: sleep(2) offices_t = self.browser.getElements( "//div[@class='pull-right']/a") [ self.offices.append(office_t.get_attribute("href")) for office_t in offices_t ] self.browser.waitElement( "//div[@id='top_pane']//i[@class='icon icon-round icon-next']", 5) self.browser.clickElement( "//div[@id='top_pane']//i[@class='icon icon-round icon-next']") currentNumber = int( self.browser.getElement( "//div[@id='top_pane']//span[@id='current_number']").text. split("- ")[1]) book = ExcelConnection().connectToExcel() sheet = book.active sheet.append(("Ofis Adi", "Ofis Adresi", "Il", "Ilce", "Telefon 1", "Telefon 2", "Fax", "Website")) for office in self.offices: self.browser.goPage(office) sleep(2) officeName = self.browser.getElement( "//div[@class='panel-body']/div[@class='title']").text addressInfo = self.browser.getElements( "//div[@class='address']/div[@class='line']") officeAddress, officeProvince, officeDistrict = addressInfo[ 0].text, addressInfo[1].text, addressInfo[2].text numbers = self.browser.getElements( "//div[@class='data-wrapper']//span[@dir='ltr']") phoneNumber1, phoneNumber2 = numbers[0].text, numbers[1].text try: faxNumber = numbers[2].text except: faxNumber = "-" pass websiteLink = self.browser.getElement( "//span[@class='pull-left']/a").get_attribute("href") agentNames_t = self.browser.getElements( "//div[@class='data-wrapper col-xs-12 col-sm-12 col-md-12 col-lg-12']/div[@class='name text-center']" ) [ self.agentNames.append(agentName_t.text) for agentName_t in agentNames_t ] agentPositions_t = self.browser.getElements( "//div[@class='data-wrapper col-xs-12 col-sm-12 col-md-12 col-lg-12']/div[@class='position']" ) [ self.agentPositions.append(agentPosition_t.text) for agentPosition_t in agentPositions_t ] agentNumbers_1_t = self.browser.getElements( "//div[@class='data-wrapper col-xs-12 col-sm-12 col-md-12 col-lg-12']/div[@class='mobile-phone']/span" ) [ self.agentNumbers.append(agentNumber_1_t.text) for agentNumber_1_t in agentNumbers_1_t ] agentNumbers_2_t = self.browser.getElements( "//div[@class='data-wrapper col-xs-12 col-sm-12 col-md-12 col-lg-12']/div[@class='phone']/span" ) [ self.agentNumbers.append(agentNumber_2_t.text) for agentNumber_2_t in agentNumbers_2_t ] print(officeName, officeAddress, officeDistrict, officeProvince, phoneNumber1, phoneNumber2, faxNumber, websiteLink, sep="|") sheet.append( (officeName, officeAddress, officeDistrict, officeProvince, phoneNumber1, phoneNumber2, faxNumber, websiteLink)) book.save("./files/turyap_offices.xlsx") book.close() def getAgents(self) -> None: book = ExcelConnection().connectToExcel() sheet = book.active sheet.append(("Rolu", "Adi Soyadi", "Telefon 1", "Telefon 2")) for agentPosition, agentName, agentNumber_1, agentNumber_2 in zip( self.agentNames, self.agentPositions, self.agentNumbers_1, self.agentNumbers_2): print(agentPosition, agentName, agentNumber_1, agentNumber_2, sep="|") sheet.append( (agentPosition, agentName, agentNumber_1, agentNumber_2)) book.save("./files/turyap_agents.xlsx") book.close()
class CenturyGlobal(RealEstate): def __init__(self) -> None: self.offices = [] self.agents = [] self.browser = Browser() def getOffices(self) -> None: self.browser.goPage( "https://www.century21global.com/tr/emlak-ofisleri/Turkey") sleep(2) print("Ofisler cekiliyor..") self.offices = [ office.get_attribute("href") for office in self.browser.getElements("//a[@class='search-result-photo']") ] print("Ofisler cekildi..") book = ExcelConnection().connectToExcel() sheet = book.active sheet.append(("Ofis Adi", "Ofis Adresi", "Il - Ilce", "Telefon")) for office in self.offices: self.browser.goPage(office) officeName = self.browser.getElement( "//h2[@class='color-gold-highlight']").text infos = self.browser.getElement( "//div[@class='detail-data-primary']").text officeAddress = " ".join(infos.split("\n")[:-1]) if "Telefon" in officeAddress: officeAddress = officeAddress.split(" Telefon numarası:")[0] province = infos.split("\n")[1] try: phoneNumber = infos.split("Telefon numarası: ")[1] if "F" in phoneNumber: phoneNumber = phoneNumber.split("\n")[0] except IndexError: phoneNumber = "-" print(officeName, officeAddress, province, phoneNumber, sep="|") sheet.append((officeName, officeAddress, province, phoneNumber)) book.save("./files/centuryGlobal_offices.xlsx") agentsButton = self.browser.getElements( "//button[@class='btn btn-primary']")[0] self.browser.clickElementWithoutXpath(agentsButton) sleep(2) agents_t = self.browser.getElements( "//a[@class='search-result-info']") for agent_t in agents_t: self.agents.append(agent_t.get_attribute("href")) book.close() def getAgents(self) -> None: book = ExcelConnection().connectToExcel() sheet = book.active sheet.append(("Ofis Adi", "Adi Soyadi", "Telefon 1", "Telefon 2")) for agent in self.agents: self.browser.goPage(agent) officeName = self.browser.getElement( "//h2[@class='color-gold-highlight']/a").text name = self.browser.getElements( "//h2[@class='color-gold-highlight']")[0].text phoneNumbers = self.browser.getElement( "//div[@class='detail-data-primary']").text phoneNumber_1 = phoneNumbers.split("\n")[-2].split( "Cep telefonu: ")[1] phoneNumber_2 = phoneNumbers.split("\n")[-1].split( "Telefon numarası: ")[1] print(officeName, name, phoneNumber_1, phoneNumber_2, sep="|") sheet.append((officeName, name, phoneNumber_1, phoneNumber_2)) book.save("./files/centuryGlobal_agents.xlsx") print("Kisiler tamamlandi..\nIslem tamamlandi..") book.close()
class Premar(RealEstate): def __init__(self) -> None: self.offices = [] self.agents = [] self.provinces = [] self.provinces_a = [] self.browser = Browser() def getOffices(self) -> None: premarUrl = "https://www.premar.com.tr/ofisler" self.browser.goPage(premarUrl) pageCount = int(self.browser.getElements("//ul[@class='pagination']/li")[-2].text) for page in range(1, pageCount + 1): self.browser.goPage(premarUrl + "?page=" + str(page)) sleep(2) offices_t = self.browser.getElements("//div[@class='content p-2']/a") provinces_t = self.browser.getElements("//span[@class='city']") for office_t, province_t in zip(offices_t, provinces_t): self.offices.append(office_t.get_attribute("href")) self.provinces.append(province_t.text) book = ExcelConnection().connectToExcel() sheet = book.active sheet.append(("Ofis Adi", "Ofis Adresi", "Il - Ilce", "Telefon 1", "Telefon 2", "E-mail", "Website")) for office, province in zip(self.offices, self.provinces): try: self.browser.goPage(office) sleep(2) infos = self.browser.getElements("//span[@class='content d-block text-muted']") officeName = self.browser.getElement("//h1[@class='name']").text officeAddress = infos[0].text officeProvince = province phoneNumber = infos[2].text phoneNumber2 = infos[3].text if phoneNumber2 == "": phoneNumber2 = "-" email = infos[4].text if "@" not in email: email = "-" websiteLink = infos[1].text print(officeName, officeAddress, officeProvince, phoneNumber, phoneNumber2, email, websiteLink, sep = "|") sheet.append((officeName, officeAddress, officeProvince, phoneNumber, phoneNumber2, email, websiteLink)) book.save("./files/premar_offices.xlsx") except NoSuchElementException: print("Bu ofis gecildi..") book.close() def getAgents(self) -> None: premarUrl = "https://www.premar.com.tr/danismanlar" self.browser.goPage(premarUrl) sleep(2) pageCount = int(self.browser.getElements("//ul[@class='pagination']/li")[-2].text) book = ExcelConnection().connectToExcel() sheet = book.active sheet.append(("Ofis Adi", "Rolu", "Adi Soyadi", "Telefon 1", "Telefon 2", "E-mail")) for page in range(1, pageCount + 1): self.browser.goPage(premarUrl + "?page=" + str(page)) sleep(2) agents_t = self.browser.getElements("//div[@class='content p-2']/a") provinces_t = self.browser.getElements("//span[@class='city']") for agent_t, province_t in zip(agents_t, provinces_t): self.agents.append(agent_t.get_attribute("href")) self.provinces_a.append(province_t.text) for agent, province in zip(self.agents, self.provinces_a): self.browser.goPage(agent) self.browser.waitElement("//a[@class='phone']", 5) officeName = self.browser.getElements("//ol[@class='breadcrumb']/li")[1].text degree = self.browser.getElement("//h6[@class='user-title']").text agentName = self.browser.getElement("//h5[@class='user-name mt-2']").text infos = self.browser.getElements("//a[@class='phone contact-link']") phoneNumber = infos[0].text phoneNumber2 = self.browser.getElement("//a[@class='phone']").text try: email = infos[1].text except IndexError: email = "-" print(officeName, degree, agentName, phoneNumber, phoneNumber2, email, sep = "|") sheet.append((officeName, degree, agentName, phoneNumber, phoneNumber2, email)) book.save("./files/premar_agents.xlsx") book.close()
class RealtyWorld(RealEstate): def __init__(self) -> None: self.officeNames = [] self.officeAddress = [] self.officeProvinces = [] self.phoneNumbers = [] self.websiteLinks = [] self.emails = [] self.agents = [] self.browser = Browser() def getOffices(self) -> None: self.browser.goPage("https://www.realtyworld.com.tr/tr/ofisler") sleep(2) self.browser.clickElement( "//div[@class='formBlock select']//button[@type='submit']") sleep(5) self.officeNames = self.browser.getElements( "//div[@class='col-sm-6 col-md-4']/header/h3/a") self.officeAddress_a = self.browser.getElements( "//div[@class='col-12 col-md-5']/p") self.officeProvinces = self.browser.getElements( "//div[@class='col-sm-6 col-md-4']/header/h4") self.phoneNumbers = self.browser.getElements( "//div[@class='col-sm-6 col-md-4']/header/h5") self.websiteLinks = self.browser.getElements( "//div[@class='col-12 col-md-5']/p/a") self.emails = self.browser.getElements( "//div[@class='col-sm-6 col-md-4']/header/h5/a") book = ExcelConnection().connectToExcel() sheet = book.active sheet.append(("Ofis Adi", "Ofis Adresi", "Il - Ilce", "Numara", "Website", "E-mail")) for officeName, officeAddress, officeProvince, phoneNumber, websiteLink, email in zip( self.officeNames, self.officeAddress_a, self.officeProvinces, self.phoneNumbers, self.websiteLinks, self.emails): print(officeName.text.replace("\n", " "), officeAddress.text.split("\n")[0], officeProvince.text, phoneNumber.text.split("\n")[0], websiteLink.get_attribute("href"), email.get_attribute("href").split("mailto:")[1], sep="|") phoneNumber = phoneNumber.text.split("\n")[0] if phoneNumber[0] != "+": phoneNumber = "-" sheet.append( (officeName.text.replace("\n", " "), officeAddress.text.split("\n")[0], officeProvince.text, phoneNumber, websiteLink.get_attribute("href"), email.get_attribute("href").split("mailto:")[1])) book.save("./files/realtyWorld_offices.xlsx") book.close() def getAgents(self) -> None: self.browser.goPage("https://www.realtyworld.com.tr/tr/ofisler") sleep(2) self.browser.clickElement("//a[@href='#tab2']") sleep(1) searchButton = self.browser.getElements( "//div[@class='formBlock select']//button[@type='submit']")[1] self.browser.clickElementWithoutXpath(searchButton) self.browser.execute_script( "window.scrollTo(0, document.body.scrollHeight);var lenOfPage=document.body.scrollHeight;return lenOfPage;" ) sleep(2) self.agents = self.browser.getElements( "//div[@class='col-sm-6 col-md-4']/header/h3/a" ) #.get_attribute("href") self.agents = [agent.get_attribute("href") for agent in self.agents] book = ExcelConnection().connectToExcel() sheet = book.active sheet.append(("Ofis Adi", "Rolu", "Adi Soyadi", "Telefon 1", "Telefon 2", "E-mail")) for agent in self.agents: try: self.browser.goPage(agent) self.browser.waitElement( "//div[@class='col-sm-8 col-md-9 col-lg-10']/h3", 5) officeName = self.browser.getElement( "//div[@class='col-sm-8 col-md-9 col-lg-10']/p/a").text agentDegree = self.browser.getElement( "//div[@class='col-sm-8 col-md-9 col-lg-10']/p/b").text agentName = self.browser.getElement( "//div[@class='col-sm-8 col-md-9 col-lg-10']/h3").text agentInfos = self.browser.getElements( "//div[@class='col-sm-8 col-md-9 col-lg-10']/p" )[1].text.split("\n") phoneNumber1 = agentInfos[0] if "+" not in phoneNumber1: phoneNumber1 = agentInfos[1] phoneNumber2 = agentInfos[2] if "+" not in phoneNumber2: phoneNumber2 = "-" email = self.browser.getElements( "//div[@class='col-sm-8 col-md-9 col-lg-10']/p/a")[1].text print(officeName, agentDegree, agentName, phoneNumber1, phoneNumber2, email, sep="|") sheet.append((officeName, agentDegree, agentName, phoneNumber1, phoneNumber2, email)) book.save("./files/realtyWorld_agents.xlsx") except: print("Bu ofis gecildi..") pass book.close()
class Era(RealEstate): def __init__(self) -> None: self.offices = [] self.agents = [] self.browser = Browser() def getOffices(self) -> None: self.browser.goPage("https://www.eragayrimenkul.com.tr/tr-TR/Offices/Search?sorting=monthlytransactionturnover%2c2") sleep(3) endPageButton = self.browser.getElements("//a[@class='page-link']")[-1] self.browser.clickElementWithoutXpath(endPageButton) sleep(2) pageCount = int(self.browser.getElements("//a[@class='page-link']")[-2].text) eraUrl = "https://www.eragayrimenkul.com.tr/tr-TR/Offices/Search?sorting=monthlytransactionturnover%2c2&pager_p=" for page in range(1, pageCount + 1): self.browser.goPage(eraUrl + str(page)) sleep(2) officeInfo = self.browser.getElements("//h3[@class='title']/a") [self.offices.append(office.get_attribute("href")) for office in officeInfo] book = ExcelConnection().connectToExcel() sheet = book.active sheet.append(("Ofis Adi", "Ofis Adresi", "Il - Ilce", "Telefon 1", "Telefon 2", "E-mail", "Website", "Facebook", "Twitter", "Linkedin", "Youtube")) for office in self.offices: self.browser.goPage(office) sleep(2) officeName = self.browser.getElement("//h3[@class='text-center text-md-left']").text officeAddress = self.browser.getElement("//div[@class=' d-flex justify-content-between bg-secondary text-white p-4']/div[@class='content']/p").text officeProvince = self.browser.getElement("//div[@class='col-12 col-md-3 text-white text-center text-lg-right']/h3").text infos = self.browser.getElements("//ul[@class='buttons']/li/div/a") infosLength = len(infos) if infosLength == 3: email = infos[0].text phoneNumber = infos[1].text wpNumber = infos[2].text if infosLength == 2: if "+" in infos[0].text: phoneNumber = infos[0].text wpNumber = "-" email = "-" if "@" in infos[0].text: email = infos[0].text phoneNumber = "-" wpNumber = "-" if "+" in infos[1].text: wpNumber = infos[1].text if "@" in infos[1].text: email = infos[1].text if infosLength == 1: if "+" in infos[0].text: phoneNumber = infos[0].text wpNumber = "-" email = "-" else: email = infos[0].text phoneNumber = "-" wpNumber = "-" socialMedia = self.browser.getElements("//div[@class='d-flex socials mt-2']/a") facebook, twitter, linkedin, youtube = socialMedia[0].get_attribute("href"), socialMedia[1].get_attribute("href"), socialMedia[2].get_attribute("href"), socialMedia[3].get_attribute("href") print(officeName, officeAddress, officeProvince, phoneNumber, wpNumber, email, office, facebook, twitter, linkedin, youtube, sep = "|") sheet.append((officeName, officeAddress, officeProvince, phoneNumber, wpNumber, email, office, facebook, twitter, linkedin, youtube)) book.save("./files/era_offices.xlsx") book.close() def getAgents(self) -> None: self.browser.goPage("https://www.eragayrimenkul.com.tr/tr-TR/OfficeUsers/Search?sorting=monthlytransactionturnover%2c2&pager_p=1") sleep(3) self.browser.execute_script("window.scrollTo(0, document.body.scrollHeight);var lenOfPage=document.body.scrollHeight;return lenOfPage;") endPageButton = self.browser.getElement("//li[@class='page-item']") endPageButton.click() sleep(3) pageCount = int(self.browser.getElements("//ul[@class='pagination']/li")[-2].text) eraUrl = "https://www.eragayrimenkul.com.tr/tr-TR/OfficeUsers/Search?sorting=monthlytransactionturnover%2c2&pager_p=" for page in range(1, pageCount + 1): self.browser.goPage(eraUrl + str(page)) sleep(3) agentInfo = self.browser.getElements("//div[@class='content']/a") [self.agents.append(agent.get_attribute("href")) for agent in agentInfo] book = ExcelConnection().connectToExcel() sheet = book.active sheet.append(("Ofis Adi", "Rolu", "Adi Soyadi", "Telefon 1", "Telefon 2", "E-mail", "Website", "Facebook", "Instagram", "Linkedin", "Twitter", "Youtube")) for agent in self.agents: self.browser.goPage(agent) sleep(2) officeName = self.browser.getElement("//small[@class='form-text mb-2']/a").text.split("@")[1] degree = self.browser.getElement("//small[@class='form-text mb-2']").text.split(" @")[0] name = self.browser.getElement("//h3[@class='text-center text-md-left']").text infos = self.browser.getElements("//ul[@class='buttons']/li/div/a") infosLength = len(infos) if infosLength == 3: email = infos[0].text phoneNumber = infos[1].text wpNumber = infos[2].text if infosLength == 2: if "+" in infos[0].text: phoneNumber = infos[0].text wpNumber = "-" email = "-" if "@" in infos[0].text: email = infos[0].text phoneNumber = "-" wpNumber = "-" if "+" in infos[1].text: wpNumber = infos[1].text if "@" in infos[1].text: email = infos[1].text if infosLength == 1: if "+" in infos[0].text: phoneNumber = infos[0].text wpNumber = "-" email = "-" else: email = infos[0].text phoneNumber = "-" wpNumber = "-" socialMedia = self.browser.getElements("//div[@class='d-flex socials mt-2']/a") facebook, instagram, linkedin, twitter, youtube = socialMedia[0].get_attribute("href"), socialMedia[1].get_attribute("href"), socialMedia[2].get_attribute("href"), socialMedia[3].get_attribute("href"), socialMedia[4].get_attribute("href") print(officeName, degree, name, phoneNumber, wpNumber, email, agent, facebook, instagram, linkedin, twitter, youtube, sep = "|") sheet.append((officeName, degree, name, phoneNumber, wpNumber, email, agent, facebook, instagram, linkedin, twitter, youtube)) book.save("./files/era_agents.xlsx") book.close()
class KwTurkiye(RealEstate): def __init__(self) -> None: self.offices = [] self.agents = [] self.browser = Browser() def getOffices(self) -> None: self.browser.goPage("https://www.kwturkiye.com/officeagentsearch/") sleep(3) pageCount = int(self.browser.getElements("//a[@class='ng-binding']")[-2].text) for page in range(pageCount): sleep(3) officeInfo = self.browser.getElements("//a[@class='office-name ng-binding']") for office in officeInfo: self.offices.append(office.get_attribute("href")) try: self.browser.clickElement("//li[@class='pagination-next ng-scope']/a") except NoSuchElementException: print("Ofisler cekildi..") book = ExcelConnection().connectToExcel() sheet = book.active sheet.append(("Ofis Adi", "Ofis Adresi", "Il- Ilce", "Telefon Numarasi", "Website", "Yonetim")) for office in self.offices: try: self.browser.goPage(office) self.browser.waitElement("//div[@ng-if='vm.officeStaff.length > 0']//div[@class='agent-languages']/div/div", 5) officeName = self.browser.getElement("//div[@class='location-office']//div[@class='col-xs-12']/h4/span").text officeAddress_t = self.browser.getElement("//div[@class='location-office']//div[@class='address ng-scope']/div").text officeAddress = " ".join(officeAddress_t.split("\n")) officeProvince = officeAddress_t.split("\n")[-1] try: officeNumber = self.browser.getElement("//div[@class='officeagent-comm-item ng-scope']/a[@class='icon-btn-phone']").get_attribute("alt") except: officeNumber = "-" try: websiteLink = self.browser.getElement("//div[@ng-if='vm.office.personalWebsite']//a").get_attribute("href") except: websiteLink = "-" government_t = self.browser.getElements("//div[@ng-if='vm.officeStaff.length > 0']//div[@class='agent-languages']/div/div") government_t = [i.text for i in government_t] government = ", ".join(government_t).replace("\n"," ") print(officeName, officeAddress, officeProvince, officeNumber, websiteLink, government, sep = "|") sheet.append((officeName, officeAddress, officeProvince, officeNumber, websiteLink, government)) book.save("./files/kwTurkiye_offices.xlsx") except: print("Ofis gecildi..") book.close() def getAgents(self) -> None: self.browser.goPage("https://www.kwturkiye.com/agents") sleep(3) pageCount = int(self.browser.getElements("//a[@class='ng-binding']")[-2].text) ##1 eksigi kere basacak sonraki butonuna for page in range(pageCount): sleep(3) agentInfo = self.browser.getElements("//a[@class='agent-name ng-binding']") for agent in agentInfo: self.agents.append(agent.get_attribute("href")) try: self.browser.clickElement("//li[@class='pagination-next ng-scope']/a") except NoSuchElementException: print("Kisiler cekildi..") counter = 1 book = ExcelConnection().connectToExcel() sheet = book.active sheet.append(("Adi Soyadi", "Ofis Adi", "Ofis Adresi", "Telefon 1", "Telefon 2", "Website")) for agent in self.agents: try: self.browser.goPage(agent) self.browser.waitElement("//div[@class='col-xs-12 form-group']/div[@class='photo-agent']/h2/a", 3) name = self.browser.getElements("//div[@class='col-xs-12 form-group']/div[@class='photo-agent']/h2/a")[1].text officeName = self.browser.getElement("//div[@class='office-details']/h3/a").text officeAddress = self.browser.getElement("//div[@class='office-details']/div[@class='form-group officeagent-addr']/span").text try: wpNumber = self.browser.getElements("//a[@class='icon-btn-whatsapp']")[1].get_attribute("href").split("phone=")[1] except: wpNumber = "-" pass try: phoneNumber = self.browser.getElements("//a[@class='icon-btn-phone']")[2].get_attribute('href').split("tel:")[1] except: phoneNumber = "-" pass print(str(counter), name, officeName, officeAddress, wpNumber, phoneNumber, agent, sep = "|") sheet.append((name, officeName, officeAddress, wpNumber, phoneNumber, agent)) book.save("./files/kwTurkiye_agents.xlsx") counter += 1 except: print("Profil gecildi..") book.close()
class TamNokta(RealEstate): def __init__(self) -> None: self.offices = [] self.agents = [] self.browser = Browser() def getOffices(self) -> None: self.browser.goPage("https://www.tamnokta.com.tr/temsilciliklerimiz/") sleep(2) self.offices = [ office.get_attribute("href") for office in self.browser.getElements("//a[@class='agent-list-link']") ] book = ExcelConnection().connectToExcel() sheet = book.active sheet.append(("Ofis Adi", "Ofis Adresi", "Telefon 1", "Telefon 2", "E-mail", "Website", "Sosyal Medya")) for office in self.offices: self.browser.goPage(office) sleep(2) officeName = self.browser.getElement( "//div[@class='agent-profile-header']/h1").text officeAddress = self.browser.getElement( "//div[@class='agent-map']/address").text phoneNumbers = self.browser.getElements( "//ul[@class='list-unstyled']/li/a/span") phoneNumber_1 = phoneNumbers[0].text try: phoneNumber_2 = phoneNumbers[1].text except IndexError: phoneNumber_2 = "-" try: email = self.browser.getElement( "//ul[@class='list-unstyled']/li[@class='email']/a").text except NoSuchElementException: email = "-" websiteLink = self.browser.getElements( "//ul[@class='list-unstyled']/li/a")[-1].get_attribute("href") socialMedias = ", ".join([ socialMedia.get_attribute("href") for socialMedia in self.browser.getElements( "//div[@class='agent-social-media']/span/a") ]) profiles_t = self.browser.getElements( "//div[@class='d-flex xxs-column']/h2/a") for profile_t in profiles_t: self.agents.append(profile_t.get_attribute("href")) print(officeName, officeAddress, phoneNumber_1, phoneNumber_2, email, websiteLink, socialMedias, sep="|") sheet.append((officeName, officeAddress, phoneNumber_1, phoneNumber_2, email, websiteLink, socialMedias)) book.save("./files/tamNokta_offices.xlsx") book.close() def getAgents(self) -> None: book = ExcelConnection().connectToExcel() sheet = book.active sheet.append(("Ofis Adi", "Rolu", "Adi Soyadi", "Telefon 1", "Telefon 2", "E-mail", "Website", "Sosyal Medya")) for agent in self.agents: self.browser.goPage(agent) sleep(2) officeName = self.browser.getElement( "//p[@class='agent-list-position']/a").text degree = self.browser.getElement( "//p[@class='agent-list-position']").text.split(" en")[0] name = self.browser.getElement( "//div[@class='agent-profile-header']/h1").text phoneNumbers = self.browser.getElements( "//ul[@class='list-unstyled']/li/a/span") phoneNumber_1 = phoneNumbers[0].text try: phoneNumber_2 = phoneNumbers[1].text except IndexError: phoneNumber_2 = "-" try: email = self.browser.getElement( "//ul[@class='list-unstyled']/li[@class='email']/a").text except NoSuchElementException: email = "-" websiteLink = self.browser.getElements( "//ul[@class='list-unstyled']/li/a")[-1].get_attribute("href") socialMedias = ", ".join([ socialMedia.get_attribute("href") for socialMedia in self.browser.getElements( "//div[@class='agent-social-media']/span/a") ]) if socialMedias == "": socialMedias = "-" print(officeName, degree, name, phoneNumber_1, phoneNumber_2, email, websiteLink, socialMedias, sep="|") sheet.append((officeName, degree, name, phoneNumber_1, phoneNumber_2, email, websiteLink, socialMedias)) book.save("./files/tamNokta_agents.xlsx") print("Process completed..") book.close()
class KristalTurkiye(RealEstate): def __init__(self) -> None: self.offices = [] self.agents = [] self.provinces = [] self.browser = Browser() def getOffices(self) -> None: self.kristalTurkiyeGetProvinces() self.browser.goPage("https://kristalturkiye.com/ofislerimiz/") sleep(2) offices_t = self.browser.getElements("//div[@class='pic']/a") for office_t in offices_t: self.offices.append(office_t.get_attribute("href")) book = ExcelConnection().connectToExcel() sheet = book.active sheet.append(("Ofis Adi", "Ofis Adresi", "Il - Ilce", "Telefon Numarasi", "E-mail", "Website")) for office, province in zip(self.offices, self.provinces): self.browser.goPage(office) sleep(2) self.browser.execute_script("window.scrollTo(0, document.body.scrollHeight);var lenOfPage=document.body.scrollHeight;return lenOfPage;") officeName = self.browser.getElement("//h1[@data-aos='zoom-in']").text infos = self.browser.getElements("//table[@class='table bordernone']/tbody/tr") officeAddress = infos[0].text if officeAddress == "": officeAddress = "-" officeProvince = province if (officeProvince == "") or (officeProvince == "/") : officeProvince = "-" phoneNumber = infos[1].text email = self.browser.getElements("//table[@class='table bordernone']/tbody/tr/td")[-1].text if email == "": email = "-" websiteLink = office agents_t = self.browser.getElements("//div[@class='pics']/a") for agent_t in agents_t: self.agents.append(agent_t.get_attribute("href")) print(officeName, officeAddress, officeProvince, phoneNumber, email, websiteLink, sep = "|") sheet.append((officeName, officeAddress, officeProvince, phoneNumber, email, websiteLink)) book.save("./files/kristalTurkiye_offices.xlsx") book.close() def getAgents(self) -> None: book = ExcelConnection().connectToExcel() sheet = book.active sheet.append(("Ofis Adi", "Rolu", "Adi Soyadi", "Telefon Numarasi", "E-mail", "Website")) for agent in self.agents: self.browser.goPage(agent) self.browser.execute_script("window.scrollTo(0, document.body.scrollHeight);var lenOfPage=document.body.scrollHeight;return lenOfPage;") self.browser.waitElement("//h1[@data-aos='zoom-in']", 5) officeName = self.browser.getElement("//h1[@data-aos='zoom-in']").text if officeName == "": sleep(2) self.browser.execute_script("window.scrollTo(document.body.scrollHeight, 0);") officeName = self.browser.getElement("//h1[@data-aos='zoom-in']").text degree = self.browser.getElement("//h3[@class='text-center title']/small").text name = self.browser.getElement("//h3[@class='text-center title']").text.split("\n")[0] phoneNumber = self.browser.getElements("//p[@class='text-center']/a/b")[0].text email = self.browser.getElements("//p[@class='text-center']/a/b")[1].text websiteLink = agent print(officeName, degree, name, phoneNumber, email, websiteLink, sep = "|") sheet.append((officeName, degree, name, phoneNumber, email, websiteLink)) book.save("./files/kristalTurkiye_agents.xlsx") book.close() def kristalTurkiyeGetProvinces(self): self.browser.goPage("https://kristalturkiye.com/ofislerimiz/") sleep(2) self.browser.execute_script("window.scrollTo(0, document.body.scrollHeight);var lenOfPage=document.body.scrollHeight;return lenOfPage;") sleep(2) provinces_t = self.browser.getElements("//div[@class='team-content']//span[@class='post']") for province_t in provinces_t: self.provinces.append(province_t.text)