Максимальное количество твитов с использованием Selenium 301 ⇐ Python
-
Anonymous
Максимальное количество твитов с использованием Selenium 301
Итак, я пытаюсь извлечь данные Твиттера с помощью селена, и у меня проблема: я не могу извлечь более 301 твита, хотя необходимо загрузить больше. Вот мой код:
# входит в твиттер и извлекает сайт /hashtag/Food driver = twitter_login("Еда") время.сон(3) счетчик = 0 Last_height = driver.execute_script("return document.body.scrollHeight") пока счетчик < 100: печать (счетчик) страница = driver.page_source # получить нужные мне данные температура = экстракт_данных (страница) # сохраняем данные в dataframe если счетчик > 0: данные = pd.concat([данные, температура]) еще: данные = температура печать (температура) # прокрутить вниз driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") # Подождите, пока загрузится страница: время.сон(5) # Рассчитать новую высоту прокрутки: new_height = driver.execute_script("return document.body.scrollHeight") print(f"последняя высота:{last_height}, новая высота: {new_height}") если новая_высота == последняя_высота: перерыв последняя_высота = новая_высота счетчик += 1 драйвер.закрыть() Функция twitter_login не вызывает никаких проблем. Все, что он делает, это просто авторизуйтесь на сайте. Функция Extract_data делает именно это. Я установил счетчик для тестирования программы, однако он просто останавливается, когда общее количество твитов достигает 301. Никаких ошибок, ничего. Очевидно, причина в том, что в этот момент: new_height == last_height. Однако, например, сегодня я провел тест и получил результаты по хэштегу «Еда» только за текущий день, что, очевидно, означает, что не все твиты будут загружены. Кто-нибудь сталкивался с подобной проблемой? Как существует обходной путь? Я предполагаю, что Твиттер таким образом предотвращает бесконечную прокрутку.
Итак, я пытаюсь извлечь данные Твиттера с помощью селена, и у меня проблема: я не могу извлечь более 301 твита, хотя необходимо загрузить больше. Вот мой код:
# входит в твиттер и извлекает сайт /hashtag/Food driver = twitter_login("Еда") время.сон(3) счетчик = 0 Last_height = driver.execute_script("return document.body.scrollHeight") пока счетчик < 100: печать (счетчик) страница = driver.page_source # получить нужные мне данные температура = экстракт_данных (страница) # сохраняем данные в dataframe если счетчик > 0: данные = pd.concat([данные, температура]) еще: данные = температура печать (температура) # прокрутить вниз driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") # Подождите, пока загрузится страница: время.сон(5) # Рассчитать новую высоту прокрутки: new_height = driver.execute_script("return document.body.scrollHeight") print(f"последняя высота:{last_height}, новая высота: {new_height}") если новая_высота == последняя_высота: перерыв последняя_высота = новая_высота счетчик += 1 драйвер.закрыть() Функция twitter_login не вызывает никаких проблем. Все, что он делает, это просто авторизуйтесь на сайте. Функция Extract_data делает именно это. Я установил счетчик для тестирования программы, однако он просто останавливается, когда общее количество твитов достигает 301. Никаких ошибок, ничего. Очевидно, причина в том, что в этот момент: new_height == last_height. Однако, например, сегодня я провел тест и получил результаты по хэштегу «Еда» только за текущий день, что, очевидно, означает, что не все твиты будут загружены. Кто-нибудь сталкивался с подобной проблемой? Как существует обходной путь? Я предполагаю, что Твиттер таким образом предотвращает бесконечную прокрутку.