Twitter-бот с питоном селен - PullRequest
       67

Twitter-бот с питоном селен

0 голосов
/ 22 сентября 2019

Я пытаюсь создать твиттер-бота с селеном, который будет получать ссылки твитов, а затем отвечать на них один за другим.Есть много учебник на YouTube .У меня много проблем.Во-первых, только если я вышел из своей учетной записи в Твиттере, твиты открываются во всплывающем окне, иначе нет.Я не знаю причину.Класс для сердечной кнопки - это HeartAnimation, когда твит открывается во всплывающем окне.И если я вошел в систему, я не могу получить «data-pemalink-path» для твитов.Теперь я не могу найти класс кнопки ответа.Класс, который я использую, не работает.Это исключение NoSuchElement.Это мой кодПожалуйста, скажите мне, если я делаю что-то не так.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Firefox()
hashtag = 'pycon'
driver.get('https://twitter.com/search?q='+hashtag+'&src=typd')
time.sleep(3)
for i in range(1,3):
    driver.execute_script('window.scrollTo(0,document.body.scrollHeight)')
    time.sleep(30)
    tweets = driver.find_elements_by_class_name('tweet')
    links = [elem.get_attribute('data-permalink-path') 
    for elem in tweets]
    time.sleep(3)
driver.get('https://twitter.com/login?prefetchTimestamp=1569146832519')
username_field = driver.find_element_by_class_name('js-username-field.email-input.js-initial-focus')
username_field.send_keys('email')
time.sleep(0.5)
pass_field = driver.find_element_by_class_name('js-password-field')
pass_field.send_keys('password')
time.sleep(0.5)
driver.find_element_by_class_name('submit.EdgeButton.EdgeButton--primary.EdgeButtom--medium').click()
time.sleep(3)
for link in links:
    driver.get('https://twitter.com' + link)
    time.sleep(7)
    driver.find_element_by_class_name('css-1dbjc4n.r-18u37iz.r-1h0z5mdr-3qxfft.r-h4g966.r-rjfia').click()
    time.sleep(2)
    reply = driver.find_element_by_class_name('notranslate.public-DraftEditor-content')
    reply.send_keys('wow!')
    time.sleep(2)
    driver.find_element_by_class_name('css-18t94o4.css-1dbjc4n.r-urgr8i.r-42olwf.r-sdzlij.r-1phboty.r-rs99b7.r-1w2pmg.r-1n0xq6e.r-1vuscfd.r-1dhvaqw.r-1fneopy.r-o7ynqc.r-6416eg.r-lrvibr').click()
    time.sleep(8)
...