From cee71d151b462cf9eb57b6bfe249a0dc27cd192b Mon Sep 17 00:00:00 2001 From: Tassatir Date: Thu, 8 Oct 2020 16:15:00 +0300 Subject: [PATCH 01/12] Added simple captcha solver script --- captchasolver/README.md | 24 ++++++++++++++++++++++++ captchasolver/csolver.py | 27 +++++++++++++++++++++++++++ captchasolver/samples/c1.png | Bin 0 -> 1490 bytes captchasolver/samples/c2.png | Bin 0 -> 1034 bytes captchasolver/samples/c3.png | Bin 0 -> 1296 bytes captchasolver/samples/c6.png | Bin 0 -> 1217 bytes captchasolver/samples/captcha.png | Bin 0 -> 7731 bytes captchasolver/samples/s1.gif | Bin 0 -> 2229 bytes 8 files changed, 51 insertions(+) create mode 100644 captchasolver/README.md create mode 100644 captchasolver/csolver.py create mode 100644 captchasolver/samples/c1.png create mode 100644 captchasolver/samples/c2.png create mode 100644 captchasolver/samples/c3.png create mode 100644 captchasolver/samples/c6.png create mode 100644 captchasolver/samples/captcha.png create mode 100644 captchasolver/samples/s1.gif diff --git a/captchasolver/README.md b/captchasolver/README.md new file mode 100644 index 000000000..6e142b3ea --- /dev/null +++ b/captchasolver/README.md @@ -0,0 +1,24 @@ +# Captcha Solver +A simple python script for solving simple captchas + +## Modules Used + +- pytesseract +- sys +- os +- PIL + +## Requirements + +- tesseract +`You can download tesseract from [here](https://tesseract-ocr.github.io/tessdoc/Home.html)` +- pytesseract +`pip install pytesseract` + +- After you install tesseract replace +`# Your tesseract location ` +with your tesseract location in csolver.py + +## How to use +`python csolver.py captcha_image` + diff --git a/captchasolver/csolver.py b/captchasolver/csolver.py new file mode 100644 index 000000000..4e9e0f410 --- /dev/null +++ b/captchasolver/csolver.py @@ -0,0 +1,27 @@ +import pytesseract, sys, os +from PIL import Image + +#Set Tesserat location +pytesseract.pytesseract.tesseract_cmd = # Your tesseract location + +#Image +im = sys.argv[1] + +def resize_image(img): + img = Image.open(img) + img = img.resize((1000,500),Image.NEAREST) + img.save("resized.png") + +def solve(img): + #First resize captcha and try to read it + resize_image(img) + cr = pytesseract.image_to_string("resized.png") + os.remove("resized.png") + if cr != "\x0c": + print(cr) + else: + #If it cant read try to read in normal size + cr = pytesseract.image_to_string(im) + print(cr) +# Run +solve(im) \ No newline at end of file diff --git a/captchasolver/samples/c1.png b/captchasolver/samples/c1.png new file mode 100644 index 0000000000000000000000000000000000000000..4c49b609de50042d1a51221aee85df67e30eac79 GIT binary patch literal 1490 zcmV;@1ugoCP)#5FtKTM1&Pc zNR-7qghc-kDKQ^RB)SpvAU%XdNkl~t5f(2Z zZrlDH@A~QQqpzR-Dyn8M<2xk%$VVT(7_qaQ-O5&**OejiInVd7$B#dsd_R6a{$h$} zF)KsJTi%8U8HIiH)l$2RWxyZ&5hNHPGL30%wB?bP;UTYh6(;P$RYXxPxfz%*cyWtc z4|wp5XBW9RnaMUnH{CH}z2!ti8T;)CLNqDPOU89-?H3St**t^tK zp$fz_P3u;7^3$&CI-*8388TkdrBaoasKg@=B1>5T1)_?kM764&vEz#`SGk!%NTKAEg(_UCrE$e={Cm2Gs8W^9-k}aez3QDQLJGO$LcG+= zWc#27z4Dsu9qLFoLrc~vopQ_VlW$nV344PYs#QIxK}3ZrQUqqWP7DeuG=nhVgt3*@ zFyRh5CNj~+A7KQ@BFknUW;mrCIK` zs#a%6naWIxe)Zd2J?cr^xC0tUnb9wQr#iz5yXE%EYl*Zz?~=SQc63lsC|DiA!O^O*E0F@)06t@RFA{*Gg8JkTJ%bUV|KRh8dpA+%0U0 z5^bj)xWbhctT5e#7jMc}-T30?Gv5rJ@eDZ0$=lp+r#;;p*od#B@*oGdv27Kr7O`jw zQ_>v=GkY_5$U~cJA`=sqR1-}uTtR|E44FM|2tItHjDFyQE%2XJ{ta&$ zY23hujciQEH%)~bx6MAvC~3qmX0aJ`(dG1-i@=4efP$16P33`k%-hW7DA5*L?sB(^ zDnsz%1)RrzeDTwnZqkPd*Ha%So_wh|VJhqtZ|vD*J3|sBy2(vveaxy=Qt52q3=-mj zCYmg)Ai)9(7O}_}|GjwrF8*s?pXYoVZL^u3ft*f!hRWAaW2!pBNE>Z7Z-@}kLQA@g z$>JBVU=y2wMA?TJddgFi>(%a|-4Xr|f1O6;auY8SGwlg=)>?3eVouR2LhYC?GA=~eHz zyf*L!2>P=~Yoa^j0VY432Sm)>fs$Ndgn#j1Y#&4*wy#e3NceCBhMs1KjBBeLNg z?@n|21~&{po9t^`8)dYV(g1-PYNj$3IK-h%Y%)iBJ?rDdODHL!WDRT5-3zHP?(+Ot zyw>ae+Mlg#gj?=Xl`hs|OV)ke|N4jj*Tox{B}nx7jcWWRkNtjsa=r;3@o0=O^MmB; s@jny)ZSnK}z|4T(;(t~A7XPc_PZ9ju)(j4S8~^|S07*qoM6N<$f^NRfaR2}S literal 0 HcmV?d00001 diff --git a/captchasolver/samples/c2.png b/captchasolver/samples/c2.png new file mode 100644 index 0000000000000000000000000000000000000000..8bffef59f49b045fae6f80c6d19331b4cb6e7b2d GIT binary patch literal 1034 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 literal 0 HcmV?d00001 diff --git a/captchasolver/samples/captcha.png b/captchasolver/samples/captcha.png new file mode 100644 index 0000000000000000000000000000000000000000..53e620a15457fc5c7941145a7750c16f1de3fd6b GIT binary patch literal 7731 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%0A`kX*x$8-??8 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 literal 0 HcmV?d00001 From 3e4ded32cf27a6b0879ced0283b37849a6bc0b11 Mon Sep 17 00:00:00 2001 From: gkydev Date: Thu, 8 Oct 2020 16:18:25 +0300 Subject: [PATCH 02/12] README.md fix --- captchasolver/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/captchasolver/README.md b/captchasolver/README.md index 6e142b3ea..ba1b9e22f 100644 --- a/captchasolver/README.md +++ b/captchasolver/README.md @@ -11,7 +11,7 @@ A simple python script for solving simple captchas ## Requirements - tesseract -`You can download tesseract from [here](https://tesseract-ocr.github.io/tessdoc/Home.html)` +`You can download tesseract from https://tesseract-ocr.github.io/tessdoc/Home.html` - pytesseract `pip install pytesseract` From 4c6a5f771a5bc254fae8f9639b73823efddd08ab Mon Sep 17 00:00:00 2001 From: Tassatir Date: Thu, 8 Oct 2020 16:20:10 +0300 Subject: [PATCH 03/12] Changed sample names --- captchasolver/samples/{captcha.png => c4.png} | Bin captchasolver/samples/{s1.gif => c5.gif} | Bin 2 files changed, 0 insertions(+), 0 deletions(-) rename captchasolver/samples/{captcha.png => c4.png} (100%) rename captchasolver/samples/{s1.gif => c5.gif} (100%) diff --git a/captchasolver/samples/captcha.png b/captchasolver/samples/c4.png similarity index 100% rename from captchasolver/samples/captcha.png rename to captchasolver/samples/c4.png diff --git a/captchasolver/samples/s1.gif b/captchasolver/samples/c5.gif similarity index 100% rename from captchasolver/samples/s1.gif rename to captchasolver/samples/c5.gif From 757b4108e1c0e2d1ea19b1fc8ae00233d377b957 Mon Sep 17 00:00:00 2001 From: gkydev Date: Thu, 8 Oct 2020 16:25:03 +0300 Subject: [PATCH 04/12] Added requirements.txt --- captchasolver/requirements.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 captchasolver/requirements.txt diff --git a/captchasolver/requirements.txt b/captchasolver/requirements.txt new file mode 100644 index 000000000..9528f4962 --- /dev/null +++ b/captchasolver/requirements.txt @@ -0,0 +1 @@ +pytesseract From 0a49d581c00b9bc4f864efd8eb5ff79466da7b81 Mon Sep 17 00:00:00 2001 From: gkydev Date: Thu, 8 Oct 2020 16:44:59 +0300 Subject: [PATCH 05/12] Update csolver.py --- captchasolver/csolver.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/captchasolver/csolver.py b/captchasolver/csolver.py index 4e9e0f410..beb6bb316 100644 --- a/captchasolver/csolver.py +++ b/captchasolver/csolver.py @@ -2,7 +2,7 @@ from PIL import Image #Set Tesserat location -pytesseract.pytesseract.tesseract_cmd = # Your tesseract location +pytesseract.pytesseract.tesseract_cmd = "" # Your tesseract location #Image im = sys.argv[1] @@ -24,4 +24,4 @@ def solve(img): cr = pytesseract.image_to_string(im) print(cr) # Run -solve(im) \ No newline at end of file +solve(im) From f7dde67a32ebcb0797ce8612219654722f09c1f8 Mon Sep 17 00:00:00 2001 From: gkydev Date: Thu, 8 Oct 2020 16:59:07 +0300 Subject: [PATCH 06/12] Update csolver.py --- captchasolver/csolver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/captchasolver/csolver.py b/captchasolver/csolver.py index beb6bb316..1154a7111 100644 --- a/captchasolver/csolver.py +++ b/captchasolver/csolver.py @@ -2,7 +2,7 @@ from PIL import Image #Set Tesserat location -pytesseract.pytesseract.tesseract_cmd = "" # Your tesseract location +pytesseract.pytesseract.tesseract_cmd = "" #Image im = sys.argv[1] From e686a7488d0e239d4f45ea5c7e4e5308c7e44310 Mon Sep 17 00:00:00 2001 From: gkydev Date: Thu, 8 Oct 2020 17:00:13 +0300 Subject: [PATCH 07/12] Update README.md --- captchasolver/README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/captchasolver/README.md b/captchasolver/README.md index ba1b9e22f..7e29b4552 100644 --- a/captchasolver/README.md +++ b/captchasolver/README.md @@ -15,9 +15,7 @@ A simple python script for solving simple captchas - pytesseract `pip install pytesseract` -- After you install tesseract replace -`# Your tesseract location ` -with your tesseract location in csolver.py +- After you install tesseract replace with your tesseract location in csolver.py ## How to use `python csolver.py captcha_image` From cf65da64bad1eb7c67c867ab6e445bafdb1bd0f1 Mon Sep 17 00:00:00 2001 From: gkydev Date: Thu, 8 Oct 2020 17:06:41 +0300 Subject: [PATCH 08/12] Update csolver.py --- captchasolver/csolver.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/captchasolver/csolver.py b/captchasolver/csolver.py index 1154a7111..a6a3e99f4 100644 --- a/captchasolver/csolver.py +++ b/captchasolver/csolver.py @@ -1,26 +1,30 @@ -import pytesseract, sys, os +import pytesseract +import sys +import os from PIL import Image -#Set Tesserat location +# Set Tesseract location pytesseract.pytesseract.tesseract_cmd = "" -#Image -im = sys.argv[1] +# Image +im = sys.argv[1] + def resize_image(img): img = Image.open(img) - img = img.resize((1000,500),Image.NEAREST) + img = img.resize((1000, 500), Image.NEAREST) img.save("resized.png") + def solve(img): - #First resize captcha and try to read it resize_image(img) cr = pytesseract.image_to_string("resized.png") os.remove("resized.png") + # First resize captcha and try to read it. if cr != "\x0c": print(cr) else: - #If it cant read try to read in normal size + # If it cant read try to read in normal size cr = pytesseract.image_to_string(im) print(cr) # Run From 5233315316c00919dca07e5a85d6238d21c2d7e7 Mon Sep 17 00:00:00 2001 From: gkydev Date: Thu, 8 Oct 2020 17:07:36 +0300 Subject: [PATCH 09/12] Update csolver.py --- captchasolver/csolver.py | 1 + 1 file changed, 1 insertion(+) diff --git a/captchasolver/csolver.py b/captchasolver/csolver.py index a6a3e99f4..3b6e976f2 100644 --- a/captchasolver/csolver.py +++ b/captchasolver/csolver.py @@ -29,3 +29,4 @@ def solve(img): print(cr) # Run solve(im) + From 9eeb38d015495ebb9bbd6c69d181c0b00d6d0545 Mon Sep 17 00:00:00 2001 From: gkydev Date: Thu, 8 Oct 2020 17:09:11 +0300 Subject: [PATCH 10/12] Update csolver.py --- captchasolver/csolver.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/captchasolver/csolver.py b/captchasolver/csolver.py index 3b6e976f2..d29c1e447 100644 --- a/captchasolver/csolver.py +++ b/captchasolver/csolver.py @@ -27,6 +27,8 @@ def solve(img): # If it cant read try to read in normal size cr = pytesseract.image_to_string(im) print(cr) + + # Run solve(im) From d366e54aadd843eddb28dc2365e0fcd9447c5e0d Mon Sep 17 00:00:00 2001 From: gkydev Date: Thu, 8 Oct 2020 17:10:33 +0300 Subject: [PATCH 11/12] Update csolver.py --- captchasolver/csolver.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/captchasolver/csolver.py b/captchasolver/csolver.py index d29c1e447..d2efaf8e0 100644 --- a/captchasolver/csolver.py +++ b/captchasolver/csolver.py @@ -27,8 +27,8 @@ def solve(img): # If it cant read try to read in normal size cr = pytesseract.image_to_string(im) print(cr) - - + + # Run solve(im) From c71ba3128db63a182195b6117d542be472630ddb Mon Sep 17 00:00:00 2001 From: gkydev Date: Thu, 8 Oct 2020 17:11:15 +0300 Subject: [PATCH 12/12] Update csolver.py --- captchasolver/csolver.py | 1 - 1 file changed, 1 deletion(-) diff --git a/captchasolver/csolver.py b/captchasolver/csolver.py index d2efaf8e0..b1d7d2fb4 100644 --- a/captchasolver/csolver.py +++ b/captchasolver/csolver.py @@ -31,4 +31,3 @@ def solve(img): # Run solve(im) -