ツイッターのいいねをpythonとseleniumで自動化してみた!(RPA)


pythonとseleniumは基本的になんでもできます。
例えば、寿司打のタイピングを自動化したり
未実装ですが、列車の遅延情報を集めてlineやgmailに送信したり
とまぁpythonとseleniumが揃えば基本的になんでもできます

これをツイッターのいいねに応用して、いいねを自動的にしてくれるスクリプトを書こうというお話

twitterのいいねを自動的に行うソース

以下はソースです。
LOGIN_ACCOUNTNAMEは自分のアカウント名を
LOGIN_PASSWORDはパスワード名を
入力して動かしてみてください


from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.common.exceptions import StaleElementReferenceException
from bs4 import BeautifulSoup 
import string
import time
import numpy as np
import sys,os
sys.path.append(os.pardir)
import json, datetime, time, pytz, re, sys,traceback, pymongo


#config
LOGIN_ACCOUNTNAME = ""
LOGIN_PASSWORD = ""


class TwitterDriver():
    def __init__(self):
        self.driver=webdriver.Chrome('/Users/fenganling/Downloads/chromedriver')

    def login(self):
        url="https://twitter.com/login/error?username_or_email=%40"
        accountname=LOGIN_ACCOUNTNAME
        self.driver.get(url+accountname)
        time.sleep(1)
        
        password=LOGIN_PASSWORD
        element=self.driver.find_element_by_xpath('//*[@id="react-root"]/
        div/div/div/main/div
        /div/form/div/div[2]
        /label/div[2]/div/input')
        element.send_keys(password)
        element.send_keys(Keys.ENTER)

    def close(self):
        self.driver.close()
        
    def scroll(self,amount):
        for _ in range(amount):
            time.sleep(1)
            try:
                self.driver.execute_script("
                window.scrollTo(0, document.body.scrollHeight);")
            except:
                print('エラー')
    
    def scroll_top(self):
        self.driver.execute_script("window.scrollTo(0, 0);")
    
    def change_driver_type(self, twitterDriver):
        twitterDriver.driver = self.driver
        return twitterDriver


class GoodBombDriver(TwitterDriver):
    def ignition(self):
        good_btn_element_s = self.driver.find_elements_by_xpath('
        //div[@data-testid="like"]')
        for good_btn in good_btn_element_s:
            good_btn.click()
            time.sleep(0.1)

        self.ignition()


class AnotherUserDriver(TwitterDriver):
    def go_home(self, accountname):
        url = "https://twitter.com/{}".format(accountname)
        self.driver.get(url)



if __name__ == "__main__":
    twitterDriver = GoodBombDriver()

    #ログインする(twitterのホームに入る)
    twitterDriver.login()



    #ロードまで3秒間待ってやる!
    time.sleep(5)


    #イグニッション!
    #どかーん!
    twitterDriver.scroll(2)
    twitterDriver.scroll_top()

    time.sleep(1)

    twitterDriver.ignition()
        

    #何食わぬ顔で静かに去る
    twitterDriver.close()
    
〜結果〜

ちゃんと動けていますね
RPAはやはり恐ろしい
これだけでも十分便利になりましたが、次回は特定の個人へいいねをしていきたいと思います。
(もちろんきちんと許可を取って笑)

もしご質問や希望等があれば,twitterで連絡してください!

tags

selenium
twitter

popular page

プログラミング言語の学ぶ順番について(初心者から中級者へ)後編

Pythonで入門書が終わった後(中級者)に勧めたい技術3選

urllibとbeautifulSoupでtwitterのツイート数,フォロー数,フォロワー数,いいね数,を取得する

another page

seleniumでtwitterに自動的にログインしてみた(RPA,スクレイピング)

ツイッターの自動的なフォローをpythonとseleniumで!(RPA)

寿司打を自動化する(python, selenium)

CONTACT ME RIGHT NOW!

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.

5th Avenue, 987
38399, New York,
USA.

Tel. 9888-4394
Mail. hello@example.com
Skype. ExampleSkype

Your message has been sent. Thank you!

© Copyrights Studio. All Rights Reserved

Created with Studio template by TemplateMag
/* フッター/コピーライトのスタイル指定 */ footer { padding: 40px 16px; } footer .copyright small { color: #868686; font-size: 1.4rem; font-family: "Ubuntu Condensed", sans-serif; letter-spacing: .05em; }