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

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

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

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

Q&A

0回答

1042閲覧

【Python】Captchaの突破方法について教えていただけませんでしょうか。

Mona0807

総合スコア6

Python

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

0グッド

0クリップ

投稿2020/05/04 06:54

編集2020/05/05 00:33

https://www.uen.gov.sg/

にアクセスすると、まず番号のcaptchaが出てきます。
これは画像認識で突破しましたが、次にアルファベットで読みづらそうなcaptchaが出てきます。

画像認識は複雑で無理でした。
音声認識は、スピーカーから流れる音をマイクで拾って音声を読み取って入力しても、
正確にアルファベットを聞き取ることができないようです。

どなたかお力を貸していただけないでしょうか。

python

1rom selenium import webdriver 2from selenium.webdriver.common.keys import Keys 3from bs4 import BeautifulSoup 4import requests 5import pandas as pd 6import csv 7import time 8import urllib.parse 9import re 10import numpy as np 11from selenium.webdriver.common.by import By 12from selenium.webdriver.common.action_chains import ActionChains 13from selenium.webdriver.chrome.options import Options 14from selenium.common.exceptions import NoSuchElementException 15from selenium.common.exceptions import ElementNotInteractableException 16from PIL import Image, ImageTk, ImageGrab 17import pytesseract 18import cv2 19import matplotlib.pyplot as plt 20from PIL import Image 21import speech_recognition as sr 22from selenium.webdriver.support.ui import WebDriverWait 23from selenium.webdriver.support import expected_conditions as EC 24import sounddevice as sd 25 26 27 28browser = webdriver.Chrome() 29browser.maximize_window() 30url= "https://www.uen.gov.sg/" 31browser.get(url) 32 33 34# full screen 35#ImageGrab.grab().save("PIL_capture.png") 36# 指定した領域内をクリッピング 37ImageGrab.grab(bbox=(700, 800, 1150, 1050)).save("PIL_capture_clip.png") 38#bbox=(左, 上, 右, 下) 39img = Image.open("PIL_capture_clip.png") 40#img.show() # 画像表示 41time.sleep(1) 42 43num = pytesseract.image_to_string(img, config = "--psm 7 nobatch digits") 44 45print(num) 46time.sleep(3) 47WebDriverWait(browser,15).until(EC.presence_of_element_located((By.XPATH, "//*[@id='input1']"))) 48userNameField = browser.find_element_by_xpath("//*[@id='input1']") 49userNameField.send_keys(int(num)) 50 51WebDriverWait(browser,15).until(EC.presence_of_element_located((By.XPATH, "//*[@id='Button1']"))) 52submitButton = browser.find_element_by_xpath("//*[@id='Button1']") 53submitButton.click() 54 55time.sleep(0.5) 56 57WebDriverWait(browser,15).until(EC.presence_of_element_located((By.XPATH, "//*[@id='pt1:r1:0:r1:0:cb21']"))) 58submitButton = browser.find_element_by_xpath("//*[@id='pt1:r1:0:r1:0:cb21']") 59submitButton.click() 60 61#0 Built-in Microphone, Core Audio (2 in, 0 out) 62#1 Built-in Output, Core Audio (0 in, 2 out) 63 64r = sr.Recognizer() 65mic = sr.Microphone() 66 67with mic as source: 68 r.adjust_for_ambient_noise(source) 69 audio = r.listen(source) 70 71#print(r.recognize_google(audio,language = 'eg-US')) 72 73audio = r.recognize_google(audio, language='eg-US') 74 75#print(type(audio)) 76 77code = browser.find_element_by_xpath("//*[@id='pt1:r1:0:r1:0:it1::content']") 78code.send_keys(audio) 79print(audio) 80 81time.sleep(4) 82submitButton = browser.find_element_by_xpath("//*[@id='pt1:r1:0:cb11::icon']") 83submitButton.click() 84

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

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

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

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

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

tiitoi

2020/05/04 07:16

拝見しましたが、最初の数字の Captcha ならプログラムでも簡単でしょうけど、2番目のやつはプログラムでは無理だと思いますよ。 パターンによっては人間でも判読がしづらいです。
Mona0807

2020/05/04 07:44

やはりそうですよね。。ありがとうございます。
Mona0807

2020/05/04 07:45

ただ、音声認識もあるので、何か方法がないかと思っておりますが。。厳しいでしょうか。
tiitoi

2020/05/04 07:49

音声のほうを聞きましたが、こちらであれば、音声認識でいけそうな気もします。 ただ私は音声認識は専門ではないので、具体的なやり方は申し上げられないです。 少なくとも画像認識では簡単なパターンがたまたま出てくるとかでなければ、非常に難しいだろうということは言えます。
Mona0807

2020/05/04 08:47

アドバイスいただきましてありがとうございました。 音声の方向から調べてみます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問