title: 20231202-twitter-bot date: 2023-12-02 tags:
- bot
- api
1. 使用 twitter API
- 先去 dashboard建立App,並在User authentication settings > 設定
- 複製 Keys and tokens
建立tweet
import tweepy
bearer_token = ""
consumer_key = ""
consumer_secret = ""
access_token = ""
access_token_secret = ""
client = tweepy.Client(
consumer_key=consumer_key, consumer_secret=consumer_secret,
access_token=access_token, access_token_secret=access_token_secret
)
response = client.create_tweet(
text="This Tweet was Tweeted using Tweepy and Twitter API v2!"
)
print(f"https://twitter.com/user/status/{response.data['id']}")
# return
# Response(data={'edit_history_tweet_ids': ['1730651881314414696'], 'id': '1730651881314414696', 'text': 'This Tweet was Tweeted using Tweepy and Twitter API v2!1'}, includes={}, errors=[], meta={})
# get me
response = client.get_me()
response
免費版只有幾個 API https://developer.twitter.com/en/docs/twitter-api/getting-started/about-twitter-api
2. 使用 seleium
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://twitter.com/i/flow/login')
username = driver.find_element(By.TAG_NAME, 'input')
username.send_keys("")
all_btn = driver.find_elements(By.XPATH, "//div[@role='button']")
all_btn[-2].click()
password = driver.find_element(By.XPATH, '//input[@type="password"]')
password.send_keys("")
all_btn = driver.find_elements(By.XPATH, "//div[@role='button']")
all_btn[-1].click()
keyword = "cat"
driver.get(f"https://twitter.com/search?q={keyword}&src=typed_query")
retweet = driver.find_elements(By.XPATH, "//div[@data-testid='retweet']")
retweet[0].click()
quote_tweet = driver.find_elements(By.XPATH, "//a[@role='menuitem']")
quote_tweet[0].click()
quote = driver.find_element(By.XPATH, "//div[contains(@class, 'public-DraftStyleDefault-block')]")
quote.send_keys("OMG!")
tweet = driver.find_element(By.XPATH, "//div[@data-testid='tweetButton']")
tweet.click()
driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
Ref
https://developer.twitter.com/en/portal/dashboard https://github.com/tweepy/tweepy/blob/master/examples/API_v2/create_tweet.py