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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Python

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

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

2609閲覧

seleniumでtwitterの自動ログインをする方法

D141

総合スコア4

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Python

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

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2021/12/14 14:43

編集2021/12/15 03:56

以前はtwitterのログインをseleniumで自動化できていたのですが現在はアップデートによってログイン画面でHTMLの要素を取得することができなくなり、自動化が難しくなってしまいました。こういった場合、他の方法でログインの自動化を行う方法があれば教えていただきたいです。
ブラウザで検証を開けば要素は取得できるのですが、下記のコードのようにfind_elementでinput要素を指定してもログイン画面では要素を取得できない状況です。

python

1driver = webdriver.Chrome() 2driver.get("https://twitter.com/login") 3driver.find_element_by_xpath('//*[@id="react-root"]/div/div/div/main/div/div/div/div[2]/div[2]/div[1]/div/div[5]/label/div/div[2]/div/input')

エラー
NoSuchElementException: Message: no such element: Unable to locate element:{"method":"xpath","selector":"//*[@id="react-root"]/div/div/div/main/div/div/div/div[2]/div[2]/div[1]/div/div[5]/label/div/div[2]/div/input"}
(Session info: chrome=96.0.4664.93)

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

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

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

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

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

guest

回答2

0

ベストアンサー

規約違反です。

4.本サービスの利用 - Twitterサービス利用規約

(iii)Twitterから提供される(かつ該当する利用条件に従う場合にのみ提供される)、当社の現在利用可能な公開インターフェース以外の方法(自動プログラムか否かを問わない)で、本サービスへのアクセスもしくはその探索またはアクセスもしくは探索の試み(ただし、Twitterとの個別契約で特に許可されている場合は除く)(注:本サービスへのクローリングは、robots.txtファイルの定めによる場合は認められていますが、Twitterによる事前の同意がないまま本サービスのスクレイピングをすることは明示的に禁止されています)

投稿2021/12/15 04:01

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2021/12/15 04:36

何が言いたいのかよく分かりませんが、どちらの解釈でも利用規約違反は NG って書いてありますね。
D141

2021/12/15 04:37

現状、利用規約への合意を必須とするサイト以外への節度を守ったスクレイピングは違法にはならないのではないかと考えられます
退会済みユーザー

退会済みユーザー

2021/12/15 04:40

そんな解釈は参考資料には書いてないですよ。 *アカウント作成時に合意は必須ですし。。。
D141

2021/12/15 05:23

回答ありがとうございます。私も以前からスクレイピングの法的問題については気になっており、te2jiさんにコメントをいただき再度、調べているところです。 ネットで意見の割れている問題であったのでとりあえず適法であるという意見を信じてこれまで行っていたのですが、調べたところ、法的に全く問題がないとは言い切れないようなので控えようと思います 貴重な意見をありがとうございました
退会済みユーザー

退会済みユーザー

2021/12/15 06:20

私の回答もコメントも利用規約違反の指摘であり、法的解釈は含まれていません。 twitter の規約では意見の割れようもない明確さで、同意のない「スクレイピング」が禁止されているだけです。
guest

0

私はこちらを使ってます。
要素を得るまで30秒間試し続けます。

Python

1timeout = 30 #秒 2body = WebDriverWait(driver, timeout).until(lambda d: d.find_element_by_tag_name( 'body' ))

投稿2021/12/15 00:42

skys215

総合スコア910

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問