2016-11-01 9 views
0

Я новичок в Selenium и не знаком с JavaScript. Я хочу получить новостные ссылки от Топ-новости в this link. поэтому я должен прокрутить только этот контейнер, который включает заголовки. Я использую Selenium с Python. Мой кодКак прокрутить указанный бесконечный элемент прокрутки в Selenium с помощью Python

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
import time 

driver = webdriver.Chrome('C:\\Program Files (x86)\\Google\\Chrome\\chromedriver.exe') 
driver.get("http://www.marketwatch.com/newsviewer") 
element = driver.find_element_by_tag_name('html') 
element.send_keys(Keys.END) 
time.sleep(8) 
element.send_keys(Keys.HOME) 

Я получаю сообщение об ошибке, которое говорит: "WebDriverException: Message: unknown error: cannot focus element". Я читал, как очистить бесконечный свиток на странице, но прокрутка определенного бесконечного прокрутки внутри страницы - это вызов для меня. Любая помощь будет оценена по достоинству.

ответ

0

А что-то вроде этого:

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") 

Не забудьте включить достаточное время сна, чтобы гарантировать, что содержимое правильно загружена. Более того, поскольку вы не ищете какой-либо конкретный текст, вам нужно будет решить, когда остановиться. Поэтому, возможно, как-то проверить, что данные, которые вы очищаете, перестали меняться.

Сказав это, убедитесь, что вам необходимо прокрутить. В некоторых случаях все данные в списке доступны напрямую, даже если они частично невидимы на экране. Прокрутка требуется только тогда, когда вам нужно загрузить дополнительные данные на страницу AJAX.

+0

Thanks Eugene S. Как я могу использовать ваш код при решении моей проблемы? Мне нужно получить URL-адреса из этого поля, которые содержат заголовки, но я не знаю, как начать с этого конкретного. Мне нужно объединить Selenium с запросами или он может работать только в моем случае? –

+0

@farshidbalan Извините, я пропустил вашу ссылку. –

+0

@ Евгений, я интенсивно искал ответ на соскабливание ссылок с этого конкретного сайта, код Ajax отличается от других сайтов, и Beautiful Soup не работает для него. Я очень надеюсь, что ты сможешь мне помочь. –