スクレイピング
まずスクレイピングとは、インターネット上のデータをプログラミングにより取得してくるものです!
何がいいって作業を効率化できることなんですよね!
あなたがいつも数時間かけていた作業をプログラミングにやってもらおうって話です笑
プログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
import function 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 from selenium.webdriver.common.keys import Keys from getpass import getpass from time import sleep import chromedriver_binary import random import csv import sys import argparse import requests def Setup(URL,path): # open chrome and open twitter login page, and take screenshot. driver = webdriver.Chrome(path) driver.get(URL) sleep(3) # We need to wait few seconds to decrease twitter-server. #driver.save_screenshot('test.png') return driver def Login(driver, USER_ID, PASSWORD): # select id-form, password-form, and input them into browser. user_box = driver.find_element_by_class_name('js-username-field') user_box.send_keys(USER_ID) sleep(random.randrange(3,6)) password_box = driver.find_element_by_class_name('js-password-field') password_box.send_keys(PASSWORD) sleep(random.randrange(3,6)) # login login_btn = driver.find_element_by_css_selector('button.submit.EdgeButton.EdgeButton--primary.EdgeButtom--medium') login_btn.click() sleep(random.randrange(3,6)) def Tweet(driver, TEXT): wait = WebDriverWait(driver, 10000) # 最大1000秒 # tweet twi = wait.until(expected_conditions.presence_of_element_located((By.ID,"tweet-box-home-timeline"))) #twi = driver.find_element_by_id('tweet-box-home-timeline') twi.send_keys(TEXT) sleep(random.randrange(5,8)) elem = wait.until( expected_conditions.element_to_be_clickable( (By.CSS_SELECTOR,"button.tweet-action.EdgeButton.EdgeButton--primary.js-tweet-btn"))) elem.click() def Tweetx(driver, TEXT): #driver = webdriver.Chrome(path) #other page for tweet wait = WebDriverWait(driver, 100) # 最大1000秒 driver.get('https://twitter.com/intent/tweet?url=https%3A%2F%2Ftwitter.com%2Fshare%3Furl&original_referer=https%3A%2F%2Ftwitter.com%2Fshare%3Furl') # tweet twi = wait.until(expected_conditions.presence_of_element_located((By.NAME,"status"))) #Clear former sentence twi.send_keys(Keys.CONTROL,"a") twi.send_keys(Keys.DELETE) #twi = driver.find_element_by_id('tweet-box-home-timeline') twi.send_keys(TEXT) sleep(random.randrange(5,8)) elem = wait.until( expected_conditions.element_to_be_clickable((By.CSS_SELECTOR,'#update-form > div.ft > fieldset > input'))) elem.click() def ReadCSV (ArrayObj,TextName,RowName): with open(TextName, mode = 'r') as csv_file: csv_reader = csv.DictReader(csv_file) line_count = 0 for row in csv_reader: if line_count==0: line_count += 1 #print(f'{row["Content"]}\n') line_count += 1 ArrayObj.append(row[RowName]) URL = 'https://twitter.com/login/' path = './chromedriver' TwCon = [] USER_ID = [] Password = [] print('投稿回数を入力してね') number = input() print('始めるアカウント番号を入力してね') Account_Number = input() #Read Twitter Account and Password ReadCSV(USER_ID,'Twitter_Account.txt','Account') ReadCSV(Password,'Twitter_Account.txt','Password') ReadCSV(TwCon,'Tweet_Content.txt',"Content") for i in range(int(Account_Number)-1,len(USER_ID)): driver = Setup(URL,path) Login(driver,USER_ID[i],Password[i]) for j in range(int(number)): TEXT = random.choice(TwCon) Tweetx(driver, TEXT) print(f'Cleck{j+1}') #You must put "()" if not it doesn't work driver.close() print('完了しました') print('ウィンドウを閉じてください') |
注意
ChromeDriverをダウンロードして同じファイルに入れておいてください!
ダウンロード方法はこちらから↓

Pythonの面白さを知ろう(スクレイピング編)
プログラムを始めるときってHelloWorldから始まって、次には計算をする
そんなのって詰まんないですよね!
動きのあるプログラミングから初めて、楽しく入っていく方式!
また、インポートもたくさんしないといけません
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import function 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 from selenium.webdriver.common.keys import Keys from getpass import getpass from time import sleep import chromedriver_binary import random import csv import sys import argparse import requests |
プログラムの一部ですが、これだけのライブラリをインポートしておいてください(玄人向けに書いてるので割愛します)
Twitter_Account.txtとTweet_Content.txtはあらかじめ作っておいてください
Twitter_Account.txtには、アカウントとIDを入力
Tweet_Content.txtには、ツイートしたい内容を入れておきましょう
最後に
あとは、コンパイラして動かすだけ!
さらに詳細が欲しい方は、連絡くださいね!
また、もっと初歩から学びたい方はこちらから↓

Pythonの面白さを知ろう(スクレイピング編)
プログラムを始めるときってHelloWorldから始まって、次には計算をする
そんなのって詰まんないですよね!
動きのあるプログラミングから初めて、楽しく入っていく方式!
コメント