質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.36%
Tera Term

Tera Termは、TeraTerm Projectが開発する国産のWindows向けターミナルソフト。telnetプロトコルでのリモートホストへの接続やCOMポートのシリアル接続が可能で、マクロが利用できます。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1628閲覧

teratermでubuntuサーバーに接続してseleniumを使ったpythonプログラムを動かしたい

strawberrysouth

総合スコア3

Tera Term

Tera Termは、TeraTerm Projectが開発する国産のWindows向けターミナルソフト。telnetプロトコルでのリモートホストへの接続やCOMポートのシリアル接続が可能で、マクロが利用できます。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/06/20 13:45

編集2021/06/23 10:16

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)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

実行しているプログラムの内容が不明なので、よくある可能性から..,

Selenium を実行するプログラムで、Seleniumの呼び出しに --headlessオプションを付けていますか。

投稿2021/06/21 02:19

CHERRY

総合スコア25216

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

strawberrysouth

2021/06/23 13:42 編集

ご回答いただきありがとうございます。 --headlessオプションをつけて実行してみましたが login()メソッドのuser名を入力する箇所で下記エラーが発生します。 ※ソースは本文に記載いたしました ブラウザの起動等がうまくいってないのかと思うのですが、何かご存じでしたらご教授いただきたいです。 elenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[name="username"]"} (Session info: headless chrome=91.0.4472.114)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問