Beispiel #1
0
class CrawlerDriver:
    """
        Using Phantomjs or firefox as driver
    """

    driver = None

    def __init__(self):
        timeout = 15
        browser = None
        proxy = None
        ua = None
        if not browser:
            browser = "phantomjs"

        if browser == "firefox":
            profile = webdriver.FirefoxProfile("/home/u738/.mozilla/firefox")
            profile.set_preference("geo.enabled", False)
            driver = webdriver.Firefox(profile)
        elif browser == "phantomjs":
            if proxy is not None:
                service_args = [
                    '--proxy=' + proxy,
                ]
                timeout = 30
            else:
                service_args = None

            if ua is None:
                user_agent = (
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) " +
                    "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36"
                )
            else:
                user_agent = (ua)
            dc = dict(DesiredCapabilities.PHANTOMJS)
            dc["phantomjs.page.settings.userAgent"] = user_agent
            driver = webdriver.PhantomJS('phantomjs',
                                         service_args=service_args,
                                         desired_capabilities=dc)
            driver.set_window_size(2048, 4076)
        else:
            logging.error("Browser is not supported %s", browser)
            return
        self.driver = WebDriverWait(driver, timeout)

    def close(self):
        self.driver.close()