Парсинг twitter с помощью selenium python

Всем привет! Есть задача "спарсить текст из 10 последних твитов со страницы Илона Маска и передать его в консоль". Все это нужно реализовать на selenium. я попытался реализовать это следующим способом:

import os

from selenium.webdriver.common.by import By
from selenium_stealth import stealth
from seleniumwire import webdriver
from dotenv import load_dotenv

load_dotenv()
LOGIN = os.getenv('LOGIN')
PASSWORD = os.getenv('PASSWORD')
IP_ADRESS = os.getenv('FR_IP_ADRESS')
PORT = os.getenv('FR_PORT')

options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_argument('--ignore-certificate-errors')
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)

proxy_options = {
    'proxy': {
        'http': f'http://{LOGIN}:{PASSWORD}@{IP_ADRESS}:{PORT}'
    }
}

try:
    link = 'https://twitter.com/elonmusk'
    browser = webdriver.Chrome(
        options=options,
        seleniumwire_options=proxy_options
    )

    stealth(
        browser,
        languages=["en-US", "en"],
        vendor="Google Inc.",
        platform="Win32",
        webgl_vendor="Intel Inc.",
        renderer="Intel Iris OpenGL Engine",
        fix_hairline=True,
    )

    browser.get(link)

    browser.implicitly_wait(20)
    target = browser.find_elements(
            By.CSS_SELECTOR, '[data-testid="tweet"]'
        )

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

    twits = browser.find_elements(
            By.CSS_SELECTOR, '[data-testid="tweet"] [data-testid="tweetText"]'
        )

    for twit in twits[::10]:
        print(twit.text)

finally:
    time.sleep(20)
    browser.quit()

Первое, с чем я столкнулся, это то, что не работает прокрутка страницы до низу browser.execute_script("window.scrollTo(0, document.body.scrollHeight)"), хотя в первоначальной версии кода она работала нормально. Второе, это то, что сборщик твитов либо вообще ничего не собирает, либо все время выдает разные результаты. Подозреваю, что это может быть связано с особенностями работы самого твиттера, но так как с селениумом работаю совсем недавно, не могу сказать об этом наверняка, по этому рассчитываю на вашу помощь. Заранее благодарю.


Ответы (0 шт):