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

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

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

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

Python

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

Q&A

解決済

1回答

2158閲覧

SelemiumでTwitterの自動化、自動いいねができなくなった

murayan709

総合スコア1

Twitter

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

Python

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

0グッド

0クリップ

投稿2021/08/31 07:06

前提・実現したいこと

Twitterの自動いいね
前まで自動いいねをができる構文を利用していたのですが、Twitterのバージョンアップが起きてからできなくなりました。

ここに質問の内容を詳しく書いてください。

html内の要素の探し方について
pythonでseleniumを利用し、Twitterにログイン
①seleniumのインストール
②chromedriverのインストール
③ツイッターのログイン画面までのアクセス
④Twitter内の検索
⑤いいねしたいツイートの選択

この①②③③④は、できております。
⑤機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

例外が発生しました: NoSuchElementException Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="id__0uv42vmc7u3m"]/div[3]/div/div/div[1]/svg"} (Session info: chrome=92.0.4515.159)

該当のソースコード

Python

1# いいねを押す 2 fb_button = driver.find_element_by_xpath('//*[@id="id__0uv42vmc7u3m"]/div[3]/div/div/div[1]/svg') 3 driver.execute_script("arguments[0].click();", fb_button) 4 #

試したこと

デベロッパーツールを利用して、周辺の要素をxpathを利用してあてはめているのですが、うまくいかないです。

補足情報(FW/ツールのバージョンなど)

Python3 VScodeで作成しております
ここにより詳細な情報を記載してください。

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

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

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

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

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

otn

2021/08/31 07:09

Twitter APIを使うのでは?
murayan709

2021/08/31 07:10

はじめまして TwitterAPIは利用しないで、自動化に挑戦しております。
otn

2021/08/31 07:14

なるほど。いいねをすること自体が目的じゃなくて、Seleniumを使ったプログラムの練習目的と言うことですかね。
murayan709

2021/08/31 07:16

はい。その通りでございます。 自動ツイートや自動リツイート等も練習しており、先月までは上手く稼働していたのですが、ツイッターがアップデートしてから、細かいところで動かなくなってしまいました。修正できるところは自分で修正したのですが、どうしても「いいね」を押す。最後のところだけ出来なくなってしまいました
guest

回答1

0

ベストアンサー

svgはXpathでは取得できません。
最後の/svgを消してやってみてください

python

1# いいねを押す 2 fb_button = driver.find_element_by_xpath('//*[@id="id__0uv42vmc7u3m"]/div[3]/div/div/div[1]') 3 driver.execute_script("arguments[0].click();", fb_button) 4 #

投稿2021/08/31 08:15

GOU_KUN

総合スコア11

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

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

murayan709

2021/08/31 08:17

ありがとうございます。 試してみたのですが、エラーになってしまいました。 : NoSuchElementException Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="id__0uv42vmc7u3m"]/div[3]/div/div/div[1]"}
GOU_KUN

2021/08/31 08:28 編集

IDはあっているのですか?または、要素が非表示の時に取得しようとしていませんか?全体のコードがないので何とも言えませんが、デベロッパーツール上であっても画面上に表示されていなければ、Seleniumでは取得できませんよ。 スクロールして取得するしかありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問