teratermで自作のubuntuサーバーに接続してseleniumを使っているpythonプログラムを動かしたいのですが
下記のエラーが発生します
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally.
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /snap/chromium/1646/usr/lib/chromium-browser/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
サーバーにしている端末から直接起動すれば動くのですが、
teratermからSSHで接続して実行したら動かないです。
SSHでつないでseleniumを使ったプログラムを動かすにはどうしたらよいでしょうか?
from selenium import webdriver from selenium.common.exceptions import WebDriverException from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait from selenium.common.exceptions import TimeoutException from selenium.webdriver.chrome.options import Options import time import random import platform def login(): driver.get('https://www.instagram.com/accounts/login/?source=auth_switcher') f = open('insta.txt','a') f.write("instagramにアクセスしました\n") f.close() time.sleep(1) #メアドと、パスワードを入力 driver.find_element_by_name('username').send_keys('****') time.sleep(1) driver.find_element_by_name('password').send_keys('*****') time.sleep(1) #ログインボタンを押す driver.find_element_by_class_name('L3NKy ').click() time.sleep(random.randint(2, 5)) f = open('insta.txt','a') f.write("ログイン完了\n") f.close() time.sleep(1) def tagsearch(tag): instaurl = 'https://www.instagram.com/explore/tags/' driver.get(instaurl + tag) time.sleep(random.randint(2, 10)) f = open('insta.txt','a') f.write("tag検索の実施\n") f.close() time.sleep(1) def clicknice(): target = driver.find_elements_by_class_name('_9AhH0')[10] actions = ActionChains(driver) actions.move_to_element(target) actions.perform() time.sleep(1) try: driver.find_elements_by_class_name('_9AhH0')[9].click() time.sleep(random.randint(2, 10)) f = open('insta.txt','a') f.write("投稿をクリック\n") f.close() time.sleep(1) driver.find_element_by_class_name('fr66n').click() f = open('insta.txt','a') f.write("投稿をいいね\n") f.close() time.sleep(1) #if random.randint(1,2)==1: follow() except WebDriverException: f = open('insta.txt','a') f.write("エラーが発生しました\n") f.close() return for i in range(1,80): try: driver.find_element_by_class_name('coreSpriteRightPaginationArrow').click() f = open('insta.txt','a') f.write("次の投稿へ移動しました\n") f.close() time.sleep(random.randint(random.randint(2, 5), random.randint(10, 15))) except WebDriverException: f = open('insta.txt','a') f.write("2つ目の位置でエラーが発生しました\n") f.close() time.sleep(5) try: driver.find_element_by_class_name('fr66n').click() f = open('insta.txt','a') f.write("投稿をいいねしました\n") f.close() time.sleep(random.randint(1,3)) #if random.randint(1,2)==1: follow() except WebDriverException: f = open('insta.txt','a') f.write("3つ目の位置でエラーが発生しました\n") f.close() def follow(): #アカウントの要素を取得 target = driver.find_element_by_css_selector('.e1e1d .Jv7Aj') targetelem = target.find_element_by_tag_name("a") url = targetelem.get_attribute("href") print(url) #クリック前のハンドルリスト handles_befor = driver.window_handles #ctrlキーで新しいタブを開こうとした残骸ココカラ #actions = ActionChains(driver) #actions.reset_actions() #if platform.system() == 'Darwin': #Macなのでコマンドキー # actions.key_down(Keys.COMMAND) #else: #Mac以外なのでコントロールキー #actions.key_down(Keys.CONTROL) #target.click() #actions.click(target) #actions.perform #ctrlキーで新しいタブを開こうとした残骸ココマデ #新しいタブを開く driver.execute_script("window.open()") print("プロフィールを開く") time.sleep(random.randint(3, 6)) handles_after = driver.window_handles handle_new = list(set(handles_after) - set(handles_befor)) driver.switch_to.window(handle_new[0]) print("window切り替え") #プロフィールを開く driver.get(url) target = driver.find_elements_by_class_name('vBF20') targetelem = None #フォローボタンをサーチ for baf in target: if (baf.text == "フォローする" ): print("フォローするになっているか確認完了") targetelem = baf #actions = ActionChains(driver) #カーソル移動 #actions.click(targetelem) #実行 #actions.perform() f = open('insta.txt','a') f.write("フォローボタンにカーソルを合わせました\n") f.close() time.sleep(1) try: if(targetelem != None): targetelem.click() time.sleep(random.randint(2, 10)) f = open('insta.txt','a') f.write("フォローしました\n") f.close() time.sleep(1) time.sleep(random.randint(2, 10)) driver.close() driver.switch_to.window(driver.window_handles[0]) except WebDriverException: f = open('insta.txt','a') f.write("エラーが発生しました\n") f.close() return if __name__ == '__main__': taglist = ['f4f', 'l4l','like4like', 'instagood','フォロー返します', 'いいね返し','フォロバ100','筋肉','いいねした人全員フォローする'] #while True: driver = webdriver.Chrome('chromedriver') #options = Options() #options.binary_location = '/usr/bin/google-chrome' #options.add_argument('--headless') #driver = webdriver.Chrome(options=options) time.sleep(1) login() tagsearch(random.choice(taglist)) clicknice() driver.close() #待機秒数の設定 #abc = random.randint(random.randint(20, 100), random.randint(120, 1800)) #f = open('insta.txt','a') #f.write(str(abc)+"秒待機します\n") #f.close() #time.sleep(abc)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/23 13:42 編集