0

あなたはそれが15人しかフォローされない理由を知っていますか?1535人 セレンのwebdriver |ソーシャルネットワークのすべての友人をアンフォローする

このスクリプトを実行するには、Instagramにアカウントが必要です。例えば

:あなたのアカウントは、このスクリプトは
https://www.instagram.com/chrome1/following/

for ns in driver.find_elements_by_class_name("_6jvgy"): 
    try: 
     ns.find_element_by_class_name("_r4e4p").click() # unFollow button!!! 

     # time.sleep(2) # the same as without sleep 

     unfollow_nick = ns.find_element_by_class_name("notranslate").get_attribute("title") 
     print(unfollow_nick) # now: prints all, but really unfollow only 15. 

    except: 
     pass 

の作業をおこなう予定chrome1 であるよりも、場合
この質問は、前の続きです: Scroll in Selenium Webdriver (Python)

すべて実行するコード: https://ideone.com/wYjHW4

+0

このメソッドを呼び出す前に、すべてのユーザーをロードしてもよろしいですか?前回の記事で触れたように、下にスクロールしたり、ENDキーを入力したとき、すべてのユーザーに「一度に10」をロードするのはAJAXリクエストです。 –

+0

はい、理由: 1)そのループの前にリストを最後までスクロールするためにrecursiveFunc(1)を実行します。 2)リストからすべてのユーザーの名前を印刷します(〜40)。 – lvcpp

+0

3)PhantomJの代わりにChromeドライバを使用しているので、表示されます。 – lvcpp

答えて

0

Instagramサーバーが要求の大半を拒否/無視するのは、(Followingボタンを連続してクリックする)要求の速度です。

各リクエストの前にスリープ時間を追加します。

コードにsleepメソッドをインポートしました。したがって、を直接使用しますが、time.sleepでは例外がスローされ、キーワードを使用して&をバイパスしてキャプチャしているため、この例外は認識されません。私は例外を印刷してpassというキーワードを使用することを推奨します。

for ns in driver.find_elements_by_class_name("_6jvgy"): 
    try: 
     ns.find_element_by_class_name("_r4e4p").click() # unFollow button!!! 

     sleep(2) # works now 

     unfollow_nick = ns.find_element_by_class_name("notranslate").get_attribute("title") 
     print(unfollow_nick) # now: prints all, but really unfollow only 15. 

    except: 
     pass 
+1

ありがとう、私もこれが原因だと思った。 私はsleep/time.sleepについて同意します。私は実際に時間のインポート睡眠からインポートしました。 はい、「パス」は例外処理には適していません。 – lvcpp

+0

しかし、問題は修正されていません。私はそれを手動で行うと、睡眠がなく、期待どおりに動作します。 – lvcpp

+0

スクリプト: 睡眠なし:15人; sleep(2)#15; sleep(8)#15 – lvcpp

関連する問題