Selenium Python - wyłączenie obrazków w przeglądarce i działanie w procesie.

0

Witam. Zacząłem bawić się z Selenium i potrzebuję, wyłączyć obrazki w przeglądarce, bo raczej one nie są potrzebne a tylko wolniej bot chodzi. Szukam również tego, żeby przeglądarka się nie włączała, znaczy może ona chodzić ale najlepiej, żeby chodziła w procesie a nie na pasku na dole. Jeśli chodzi o wyłączenie obrazków to coś znalazłem ale mi to nie działa.

chromeOptions = webdriver.ChromeOptions()
prefs = {"profile.managed_default_content_settings.images":2}
chromeOptions.add_experimental_option("prefs",prefs)
driver = webdriver.Chrome(chrome_options=chromeOptions)

Lecz, żeby mój program działał ja już mam zmienną driver zajętą do lokalizacji takiego pliku "driver=webdriver.Chrome("C:\Users\PC\Desktop\py\lib\chromedriver.exe")"
Przeglądarka się włącza ale obrazki nie znikają a później wywala mi błąd:

Traceback (most recent call last):
  File "C:\Users\PC\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", line 74, in start
    stdout=self.log_file, stderr=self.log_file)
  File "C:\Users\PC\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "C:\Users\PC\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py", line 997, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] Nie można odnaleźć określonego pliku

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/PC/Desktop/py/proj/projekt/projekt/projekt.py", line 15, in <module>
    driver = webdriver.Chrome(chrome_options=chromeOptions)
  File "C:\Users\PC\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 62, in __init__
    self.service.start()
  File "C:\Users\PC\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", line 81, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

Korzystam z najnowszej wersji Pythona i Selenium, pobierałem jakiś tydzień temu. Jeśli chodzi o działanie w procesie to nic nie znalazłem. Pozdrawiam.

0

Rozważałeś skorzystanie z PhantomJS (http://phantomjs.org/)?

0

Rozumiem, że jest to na Pythona skoro mi proponujesz. Mógłbyś mi podać jakieś przykłady do czego mógłbym to wykorzystać?

0

To taki emulator przeglądarki, możesz go użyć tak jak Chrome czy Firefox:

driver = webdriver.PhantomJS(executable_path='/twoja_sciezka/bin/phantomjs')

Nie odpala Ci się żadna przeglądarka, dzięki czemu możesz to odpalić również na serwerze bez "okienek".

0

Muszę odkopać wątek bo mam taką samą sytuacje co autor. Jest może na dzień dzisiejszy już jakiś odpowiednik phantomJS dla pythona? Nie znam JS za dobrze, a też nie mogę wyłączyć obrazków i innych niepotrzebnych rzeczy w selenium.webdriver.Chrome w żaden sposób.

0

Ok już mam. Potrzebowałem tego żeby odpalić chromedriver 74 w headless:

options = Options()
options.add_experimental_option("excludeSwitches",["ignore-certificate-errors"])
options.add_argument('--disable-gpu')
options.add_argument('--headless')
driver = webdriver.Chrome(chromedriver_path, options=options)

1 użytkowników online, w tym zalogowanych: 0, gości: 1