KimuraSouki
@KimuraSouki (蒼季 木村)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

「私はロボットではありません」をスクレイピングしたい

解決したいこと

タイトルにある通り、re.CAPTCHAの「私はロボットではありません」というテキストをseleniumを使って取得したいのですがうまくいきません。原因と解決策を教えていただきたいです。

発生している問題・エラー

AttributeError: 'NoneType' object has no attribute 'text'

該当するソースコード

importコードは割愛します。

url = 'https://yoidea.github.io/am-i-human/infinity.html'
driver.get(url)
print(driver.find_elements(By.ID,'recaptcha-anchor-label')).text

自分で試したこと

いつもスクレイピングでやってるように、id属性で指定して要素を取り出そうとしましたが、失敗しました。

補足情報

このスクレイピングを成功させることで、re.CAPTCHAを突破できずとも、せめて認識してプログラムを停止できるようにしたいです。
別のスクレイピングをしているときに行き詰まったので、練習しやすい今回のurlで実験しています。
このurlは無限にre.CAPTCHAが湧いてくるサイトです。

0

4Answer

突破は他2名の回答にある通りなのでNGとして、

認識してプログラムを停止

のみを目指す回答をしますね。

recaptchaが入ったページではhttps://www.google.com/recaptcha/api.jsを読み込んでいるはずなので、それが見つかったらプログラムを止める、という処理にしておけば良いのではないかと思います。

4Like

Comments

  1. @KimuraSouki

    Questioner

    確かにそれで認識することができました!ありがとうございます。

recaptcha があるということはそのサイトとしてはスクレイピングは迷惑だと言っているのと同じで、あなたは迷惑行為をしていると言うことになるのでは?

クローラを作って某図書館サイトにアクセスしたら業務妨害とかで逮捕された事例があるので甘く考えない方がいいですよ。

3Like

既に触れられていますが,reCAPTCHAのようなアンチボットが必要な領域に対して自動化操作を試みないでください.
状況によっては帯域ごとアクセスを遮断されたり(最悪多数のISP利用者が巻き添えを喰らうことになります),深刻な場合は立件される場合もありますのでやめましょう.

ページ内に目的とする情報が見つからない状態でフィードバックが必要な場合は,ページを何も操作せずエラーメッセージのみを返却してください.

1Like

Comments

  1. @KimuraSouki

    Questioner

    そうなんですね、、わかりました。ありがとうございます。

タイトル :「私はロボットではありません」をスクレイピングしたい

「私はスクレイピングを目的としたボットではなく、正規のユーザーとして、Aさんの自動ログインの代行依頼を受けて、画像認識判定ロジックで自動ログインするAIエンジンです。」

さて、seleniumは座標指定でボタンを押せます。画像認識はseleniumでは出来ませんから、親言語で判断して下さい。

 本題ですが、スクレイピングはNGです。しかし、倫理の話はアッチへポイしましょう!
 本当に接続サイトが自動ログインすら拒否しているのでしょうか?対話してみませんか?
一方的判断を下す前に、先方と対話、妥協点を形成することが新しい人間関係を築き上げることができると思います。
 ネットでは感情や誹謗中傷も表現でき難い事がありますが、技術的な話なら、歩み寄ることができるかもしれません。 
 

   暇人x in 居酒屋

0Like

Your answer might help someone💌