Почему я могу очистить сайт Dynami c на своем локальном компьютере, используя селен, но не в Google Colab? - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь использовать селен в google colab для очистки комментариев к видео на YouTube, но скрипт вызывает исключение. Когда я запускаю тот же скрипт на моей локальной машине, он работает. Видео веб-сайт YouTube является динамическим c, и я обнаружил, что исходный контент страницы возврата не возвращает весь контент на colab. Однако я не знаю, как это понять.

from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
import time

options = Options()
prefs = {"profile.managed_default_content_settings.images": 2}
options.add_experimental_option("prefs", prefs)
options.add_argument("--headless")
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--window-size=2560x1440")
options.add_argument("start-maximised")
options.add_argument('--disable-gpu')
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://www.youtube.com/watch?v=yIYKR4sgzI8')

time.sleep(10)
driver.execute_script('window.scrollTo(1, 500);')
time.sleep(10)

comment_div=driver.find_element_by_xpath('//*[@id="contents"]')
comments=comment_div.find_elements_by_xpath('//*[@id="content-text"]')

for comment in comments:
    print(comment.text)

driver.close()
Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="contents"]"}
  (Session info: headless chrome=80.0.3987.87)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...