Esempio n. 1
0
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()
Esempio n. 2
0
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()
Esempio n. 3
0
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()
Esempio n. 4
0
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()
Esempio n. 5
0
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()
Esempio n. 6
0
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()
Esempio n. 7
0
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()
Esempio n. 8
0
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)