Как сохранить состояние веб-драйвера Selen в Python?

python selenium selenium-webdriver

564 просмотра

1 ответ

Я пытаюсь почистить этот сайт: http://www.infoempleo.com/ofertas-internacionales/ . Я хотел очистить, выбрав переключатель "Последние 15 дней". Поэтому я написал этот код.

browser = webdriver.Chrome('C:\Users\Junaid\Downloads\chromedriver\chromedriver_win32\chromedriver.exe')
new_urls = deque(['http://www.infoempleo.com/ofertas-internacionales/'])

processed_urls = set()

while len(new_urls):

print "------ URL LIST -------"
print new_urls
print "-----------------------"
print
time.sleep(5)

url = new_urls.popleft()
processed_urls.add(url)

try:
    print "----------- Scraping ==>",url
    browser.get(url)
    elem = browser.find_elements_by_id("fechapublicacion")[-1]
    if ( elem.is_selected() ):
        print "already selected"
    else:
        elem.click()

    html = browser.page_source
except:
    print "-------- Failed to Scrape, Moving to Next"
    continue

soup = BeautifulSoup(html)

Я был в состоянии выбрать переключатель и очистить первую страницу. В конце есть список страниц, как 1, 2, 3 ..

При переходе на следующую страницу 'browser.get(url)'вызывается, при этом переключатель переключается на «Любая дата» вместо «Последние 15 дней». Что заставляет код выполнять оператор else, else: elem.click()чтобы снова выбрать переключатель, который открывает первую страницу, которая уже была очищена.

Это можно обойти? Помощь будет оценена.

Автор: el323 Источник Размещён: 08.11.2019 11:24

Ответы (1)


0 плюса

Я нашел решение этой проблемы. Вместо сохранения ссылок на следующие страницы в списке. Я выбираю кнопку / элемент nextPage и использую .click(). Таким образом, browser.get(url)нет необходимости повторно звонить, и страница не перезагружается.

Автор: el323 Размещён: 20.08.2016 08:34
Вопросы из категории :
32x32