Selenium Webdriver Chrome in Python внезапно перестал работать - PullRequest
0 голосов
/ 14 февраля 2020

и спасибо, что прочитали мои ошибки. Я хотел соскрести около 1000 сайтов с веб-сайта. Это работало очень хорошо. Скрипт печатал мои результаты. Но затем он внезапно остановился, не показывая мне ошибку. На следующий день я снова запустил тот же сценарий, но на этот раз он всегда выдает следующую ошибку. WebDriverException: Message: chrome not reachable Я перепробовал много вариантов, но ни один из них не работал. Где может быть проблема? Это код, который я написал.

import time
from itertools import count

# start selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.chrome.options import Options

#start browser
options = Options()
options.add_argument("start-maximized")
driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:/ProgramData/chocolatey/bin/chromedriver.exe')
driver.get('https://ausschreibungen-deutschland.de/Nordrhein-Westfalen')
time.sleep(3)
cookies_button = driver.find_element_by_id('am_pop-up-save')
cookies_button.click()

#crawl the pages
all_pages = driver.find_element_by_css_selector('ul.pagination.justify-content-center.pagination-sm')
pages = all_pages.find_elements_by_class_name('page-link')
links = []
for page in pages:
    link = page.get_attribute('href')
    links.append(link)
for n in count(1):
    driver.get(f"https://ausschreibungen-deutschland.de/Nordrhein-Westfalen/{n}/")
    get_ausschreibung()
    try: driver.find_element_by_xpath(f"//a[text()='{n + 1}']")
    except NoSuchElementException: break
def get_ausschreibung():
    ausschreibungen = driver.find_elements_by_class_name('card')
    for index, ausschreibung in enumerate(ausschreibungen):
        try:
            offer_header = ausschreibung.find_element_by_css_selector('span.offer-header')
            if offer_header:
                print(index, ausschreibung.text)
        except:
            pass
for index, link in enumerate(links):
    if index == 0:
        get_ausschreibung()
        time.sleep(3)
    else:
        driver.get(link)
        get_ausschreibung()
        time.sleep(3)

#with open('out.txt', 'w') as f:
#    f.write(info.text)```
...