12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- from selenium import webdriver
- from selenium.webdriver.common.by import By
- from selenium.webdriver.common.keys import Keys
- from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
- from webdriver_manager.chrome import ChromeDriverManager
- from fake_useragent import UserAgent
- class Browser:
- """ Класс представляющий браузер """
- def get_browser(self, display_browser, proxy=None):
- """ Настроить и получить браузер """
- user_agent = UserAgent()
- user_agent = user_agent.random
- driver = ChromeDriverManager().install()
- options = webdriver.ChromeOptions()
- options.add_argument(f'--user-agent={user_agent}')
- options.add_argument(f'--disable-blink-features=AutomationControlled')
- if not display_browser == 'yes': # Если браузер не нужно отображать
- options.add_argument('--headless')
- if proxy: # Если собираемся парсить через прокси
- browser = self.get_browser_with_proxy(user_agent, driver, options, proxy)
- return browser
- else: # Если не собираемся парсить через прокси
- browser = webdriver.Chrome(
- driver,
- options=options
- )
- return browser
- def get_browser_with_proxy(self, user_agent, driver, options, proxy):
- """ Возвращаем браузер с прокси """
- caps = DesiredCapabilities.CHROME
- caps['marrionette'] = True
- caps['proxy'] = {
- 'proxyType': 'MANUAL',
- 'httpProxy': proxy,
- 'ftpProxy': proxy,
- 'sslProxy': proxy
- }
- browser = webdriver.Chrome(
- driver,
- options=options,
- desired_capabilities=caps
- )
- return browser
|