Парсер Selenium Twitter немедленно закрывается – не обнаруживает новые твитыPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Парсер Selenium Twitter немедленно закрывается – не обнаруживает новые твиты

Сообщение Anonymous »

Я пытаюсь написать сценарий Selenium, который сканирует Twitter на наличие новых твитов от конкретного пользователя после запуска сценария. Цель — распечатать и сохранить твиты в формате CSV, если они опубликованы после начала выполнения сценария.
Вот код, с которым я работаю:

Код: Выделить всё

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import pandas as pd
import time
from datetime import datetime, timezone

class TwitterScraper:
def __init__(self, username, max_scrolls=10):
self.username = username
self.max_scrolls = max_scrolls
# Set start time to timezone-aware datetime
self.start_time = datetime.now(timezone.utc)
options = webdriver.ChromeOptions()
options.add_argument("--disable-gpu")
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
self.driver = webdriver.Chrome(options=options)
self.url = f'https://twitter.com/{username}'
self.last_tweet_time = None

def start(self):
self.driver.get(self.url)
scroll_attempts = 0

while scroll_attempts < self.max_scrolls:
try:
WebDriverWait(self.driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "article"))
)

tweets = self.driver.find_elements(By.CSS_SELECTOR, "article")
for tweet in tweets:
timestamp_element = tweet.find_element(By.TAG_NAME, "time")
tweet_time = datetime.fromisoformat(timestamp_element.get_attribute("datetime"))

# Ensure tweet_time is timezone-aware
if tweet_time.tzinfo is None:
tweet_time = tweet_time.replace(tzinfo=timezone.utc)
else:
tweet_time = tweet_time.astimezone(timezone.utc)

if tweet_time > self.start_time:
tweet_text = tweet.text
print("New Tweet Detected:")
print(tweet_text)

# Save to CSV
df = pd.DataFrame([{ "text": tweet_text, "time": tweet_time }])
df.to_csv('latest_tweet.csv', mode='a', header=False, index=False)
print("Latest tweet saved to latest_tweet.csv")

# Scroll down
self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(5)
scroll_attempts += 1

except Exception as e:
print(f"Error: {e}")
scroll_attempts += 1

self.driver.quit()

if __name__ == "__main__":
scraper = TwitterScraper("FabrizioRomano", max_scrolls=20)
scraper.start()
Проблема:
Когда я запускаю сценарий, браузер Chrome открывается, но закрывается через несколько секунд, не печатая и не обнаруживая никаких твитов. Я планирую переключиться на безголовый режим позже, но сейчас мне просто нужно, чтобы основные функции работали. Вывод пуст.
Я подозреваю, что проблема связана либо с:
Как обнаруживаются твиты (возможно, селекторы статей или времени неверны или не найден).
Логика прокрутки или сравнение start_time.
Будем признательны за любые указания о том, почему браузер закрывается так быстро без очистки твитов и опубликован ли подход к обнаружению твитов после запуска скрипта это правильно.

Подробнее здесь: https://stackoverflow.com/questions/793 ... new-tweets
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Парсер Selenium Twitter немедленно закрывается – не обнаруживает новые твиты
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Как публиковать твиты с помощью Twitter API V2 на PHP?
    Anonymous » » в форуме Php
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Twitter Timeline внедряет не отображает недавние твиты правильно через iframe. Как я могу решить эту проблему?
    Anonymous » » в форуме Html
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Получение количества подписчиков пользователя Twitter с помощью Twitter API бесплатно
    Anonymous » » в форуме Python
    0 Ответы
    116 Просмотры
    Последнее сообщение Anonymous
  • Ошибка приема Twitter с помощью Tweepy v3.10.0 и API Twitter — ошибка 403 и Py4JJavaError
    Anonymous » » в форуме Python
    0 Ответы
    106 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»