初投稿です。
インスタグラムのPOSTに対してコメント(宣伝文)を書き込むアルバイト。
自動化しないと、あまりにも給料が安すぎて。
というわけで、ググって調べてみると、サンプルコードみたいなのはあまりいいのが見つからなかったけど、大体のやり方は把握できた。
SELENIUMという、PYTHONから操作できるブラウザみたいなのを立ち上げて、それに対してあれこれ命令する。ブラウザ立ち上げ、ログイン、業者からもらったアカウントリストの上から順にアクセスして、投稿があればその投稿ページに行き、コメントする。そして次のアカウントへ。
投稿ページに行くまではスムーズに進む、が、投稿を書き込むところで詰まった。
find_elementで投稿書き込み用のテキストエリアを探すのだけれど、「そんなものは無い」とエラーを返される。
いや、無いはずない。あるよ!
探す方法を色々変えてみたけれど、結局どれも効果なくて。
これで解決。
while True:
try:
elem = driver.find_element(By.XPATH,full_xpath)
elem.send_keys(com)
print('comment wrote')
time.sleep(1)
break
except:
print('comment : failed to write')
time.sleep(1)
pass
つまり、そこに有るんだから、何度でも探しなさい、というこちらの信念が通った形。
実際は、一回目は必ずエラーになって、二回目でちゃんとコメント成功する。
なぜだろう。。。なぜ一回で成功してくれないのか。ブラウザの読み込み時間は十分に取っているはず。
そしてなぜ二回目は必ず成功するのか。そんな微妙なタイミングを求められているのですか。ブラウザの中では一体何が蠢いているのでしょうか。
わかる方教えてください。