12306登录最新

因为使用了超级鹰来识别12306的验证图,成功率不是100%。失败了自己加个except处理吧。

#下述代码为超级鹰提供的示例代码
import requests
from hashlib import md5
# data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAC+ASUDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+ivPNS1bUJdPlW2XWIJZ550EExgZ4mwMplZDkA5IIJwGA7Vd8P63d2Wi39zqC3k32C3VmR9gYkKSQPmJyeMZxQB21FcPqV14igvb/Vfs2qWlklsh8qKS1fGzeWbDk9iOnpU+r6tqVsohtdYij2W48w3GiT3DuxGdweJ0QcEcAcEHnsADsaK4Xwrq2p3un6fBd6zHIk1oqjydGuIpQxQYbzndkyPUrg0zXZdR0fxLpVqmq65c2k9rdTTpbpC8i+W0IDAbMkASNkAEnjAoA72iuH1C6iNlpk1tr11d2lxcPula7WDpE+FLoF24YDIIyCMYzxXKXOoapB4f1W4k1PUY5LfT7qaOctcxqZlVygjJkZWA25ywGRt4OTgA9jorh/Eev3507xBFb3OnWwtN0S75mWU/u1bcMdPvcfSpdS8RahBZ6lEtxYNLHps1zHNZuWKMm0DIOR/F+lKTsrl04OpNQW7djs6K8t/te+WGCAXOvLM9zsuws0MsxHkGUeWfuKMEE+2e9Ra/4hktvDVguma1qkEt+gWOC9MJdkZjmV5D90EHAO4AYHTBrneJik3Y9eOSVZTjBSXvPz89dL9vu7Hq9FeZaHrl5LqmnaWNcvCsjeWn76yuOFUthim5uQOp596ojxbq41DUzFqFrK90lwDAWZfsQh+VW64GRljgZJFH1mNr2BZHWcnFSW1+vd+Wmz+63VHrdNkkjhieWV1SNFLM7HAUDqSewrlvCN7qRvLzSr69gvUsbe3MVzGrZlDqx3MSxycKOfeoPihfPa+CJ7WKQRy6lNHYozHAHmN82fbaGreEuZXPMxFB0Kjpt32+5q6/BnXQzw3MSywSpLGwyrowYH8RWZdeJ9GtXuYhfwT3VvG8klrBKrygKMn5QePxxXGfEa4sfC3w8+06KVgucxWttc2z7W4916/KprBmefTbqwsmnEcsUCxXc0l59l3My+dclpcZXc8lvkjnAPrVGB6A/i/zLox2djLcKIImCjhmlkJ2pzwuFAYk9mFdMhYopdQr45AOQD9a8l07T7LUfFOkQxW2mNumN1LLBYyl2WMZB+1SH9585ToP5165QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQByNx4PuL3UfNu7yJrX7XLcLEIEbYGXA++rBie5wMcY7kw6b4V1GLTtStLiLTok1CdFliXbKnkAYcYEUalmGRgrgZzk4xXXedJ/z7S/mv/xVHnSf8+0v5r/8VQBxo+GuiklH0nRDEzXCkjS4AwR+YyCE+8n3R2I65NaZ0/X45UnQ6fNK9hHbThpHjUSKWJZQFPB3dPat/wA6T/n2l/Nf/iqPOk/59pfzX/4qgDn9I0vWra70lb1bIW1hZPbloJnZnbEYBKlQP4D371eu9Knn8WaXqqtGILS0uoHUk7i0jQlSBjGP3bZ57jrWl50n/PtL+a//ABVHnSf8+0v5r/8AFUAZWt6XeXcli+nG3iaCaR5PMLLkNG6kgrzuywOa5m+8Ga/Lp2sW9vf2RbUbGa0ZZlGCXUgMXCb+MnqSOeld350n/PtL+a//ABVHnSf8+0v5r/8AFUAZWueH7XUdJ1GKCztftV1Gw8x4xkuQACTjPQDn2pus+Hob3R762sIbW1urm3aATeUBhWxkHHY4rX86T/n2l/Nf/iqPOk/59pfzX/4qk1dWZdObpzU47rU51/CVvDqNtLYQW1ta28E2Io02l5nUIGOO23d+dV7jwlNc+GNG00tClzaNbCeVSQSkZ+YKcdeTjIrqvOk/59pfzX/4qjzpP+faX81/+KqPYw1OpZhiFyvm1X/B/wA2clD4QvIPFVlepchrC0dnXzZi8jEoVxt2gDknnJqHTfCOr2eq29xPc2E1tCbzbCEbI845AJ/iHr0x2zXZ+dJ/z7S/mv8A8VR50n/PtL+a/wDxVT7CH9f15FvNMQ1Z22tt6/j7zMHwxoV5pd1f3V6tlE9wsMUcFlu8uNIwQMFgDk7jW3d6faXzQG6t45jbyiaLeM7HHRh7jNP86T/n2l/Nf/iqPOk/59pfzX/4qtIxUVZHJXrSrzdSe+n4KxheIfA2heJlgW/tcLFKJSIcJ5hAIw2Oo5NR2fgzT9P8QxXlnZ2sVpFE5SILkrM5XLAYwPlRRx6V0PnSf8+0v5r/APFUedJ/z7S/mv8A8VVGRnWOhtb6o2p3d9NeXXltFHuVVSJGIJCqB32rySegrXqHzpP+faX81/8AiqPOk/59pfzX/wCKoAmoqHzpP+faX81/+Ko86T/n2l/Nf/iqAJqKh86T/n2l/Nf/AIqjzpP+faX81/8AiqAJqKh86T/n2l/Nf/iqPOk/59pfzX/4qgCaiofOk/59pfzX/wCKo86T/n2l/Nf/AIqgCaiofOk/59pfzX/4qjzpP+faX81/+KoAmoqHzpP+faX81/8AiqPOk/59pfzX/wCKoAmoqHzpP+faX81/+Ko86T/n2l/Nf/iqAJqKh86T/n2l/Nf/AIqjzpP+faX81/8AiqAJqKh86T/n2l/Nf/iqKAJqKKaTigB1FZ+qavaaTbCe8m8tCdoIUtk/Qc14FdeLvFWtzXtzZ6tLZyAeYlo100WVJOWTHGBjgZyR61LkkbUqEqmp9G0V8wp4s8U28ttPN4ndoXiEZc3UoSJsDluTliAfxNPsPEGu6lDODrPiO6lUlfOs751QnsFAPXkeufQ1DqpdDb6nK17n03RXy7P438QSxAJrepW90p8l3a6kMS9Sdx3YzjuMnpz1pG8b6lYlYLbxHrF5cEbZHe7kKlvQDdwPT+dP2iB4OXc+o6K4Dwj8RbfXb37Bc/JO7N5LDo2OSp9wB1788DpVz4mXV5aeHLZ7G5ubeZrtVD28jIfuP128kcDj2HTrVOStcyjQk6ipvqdnRXzePFWsSwzxLreqGZZsq/22UAr6DGR6dT1781La+JdeuIt413UBEHCbZLl0Zm5yMlsg9e/pis/bLseh/ZMkruaPouivnptT8WQyrnVNYV5GHkK88gjuMAEBGbnH55zzUN14i8S2QxcahrkNzyzRGSXadvzbQec8HrwMDvmn7Vdif7Lf86PouivnuTxFr7iKWDU9UjOECSSTSgO/XBRmweBzgVDaeJdcupIY5ta1CMSELta+ZGIO751O7BwR0+g9qPaof9k1N3JH0VRXzpH4g15LowNr+pNFvCq63rMJMZBw2SRkfr1xQuveJbxW+x3+rpEJCFkl1AndgDjOQCeQT9aPaoFlM/5kfRdFFFankhRRRQAUUUUAFFFFABRRXM+Obm7ttFgeznlhlNyq7o3KnG1uDjtTiruxM5csXI6aivHZtT1mFyp1W8Zsdrluv58VestQ1NopZJdQvGU9F+1OGI9vTv8Al9a0lT5Y3bMIYhSlZI9Uorya31vW9TKtbXl0lqBnz2cjzARkCPsx9WIwDwN2crdtZruzhKrquoStuLNJNcyOX/2sE4A4+6oA68c1ze0XQ6dT0yivMJNR1EHA1C7HPP79uPbrWPf6jq8zApq+pQOOVMdy2M5HBBOD+PrUusluhpXPZ6K8BufEut2geDUNYvo423GK4jnkBZscLwTjB/xGcYrMvfFHifRtReCfWNQmVG4kM8gVhjpgnqO/+GKqNWMiZNx6H0jRRRWgwprcClJwKr3k629pLMxwqKWJ9ABQFr6HkfxU1Zp9TjsYLqJIYkIlYsAUOcke5Ix9CK813adc2kha4KujtHaxGTBiOMlzjBwAOhOOMVe16S0ne8vIbiXU5rjcyK6YZQGJZWXnccgZbocZFZ919ju2aS/0iaKKO3DO6II/LDHjHHP4D6+o5JPW57VOHLFRMmI2dvK0huLr7IjYiYFSxbuxBB9eP8avpNpks9zPbS6h5QZcXPmYCHHQlV25PPb09Kr3N5eR28kVhdi60iJQrM8IYJ7YPBI9ferMYV9OgS5heHS/mZmiCszDIAyoOV+XHJHYcGh7FXbeggD3WiLawW1wSZXmjieMsJgr/wB7ADADHI+n10Rdz300raTp9vdxRKiK5UKyYz0B6/z46djU3SXGo3B0ya6js7hEzJekbh6KpCqpznPAqGCyGn2txLaXEv29Zdm6aRVXgA5bkjjJxRa5NnuzqvCFxdR6vYXkywRSRNmS5ldS5Qn5lHGeRkcnjPWvUviylzJ4VtUtIjLKb5MIFDE/I/TP+TyO9eHpatFsW4tNQS4PzNLbt5odjyx4BA5P15Ga+gvHmoWul6dpt3dRRuqagm1pASIzsf5gADk4yB6E57VpF3i0ZzvHEQktzyeystO0kGXWbKeXy5Vie2V9sYU4YPIBwX5T5Bxzzk8CObxFaWOoXtvsj/s65kcR2lzbZCYOQy4+Xnp0OOn15+91C5n1l5dRmdd+1Z42LMkg42vn0yBxzjtiq/2iC2Ey2vnXPnuVI3E7ADkYI69BnPt71kerGmpe/LcszXlwZIYriwdMsxURK4VHz94hh/vcDHua3rzxHqF1HHY3l41kUVUzuDRyjGSVOMjhhnHrjtgc/Y3L26mVLS+ewvJPLFuJiW3YJOQBz3xx2qxp96REqOrXX2h1hhmuCpeGQgg5TnIzn8uozSsXyJ6voa9j/wAI8+lv9qtNQtShyLlZ9xjB4Hyt1Axn7vbrzWVqGmW9ukly9xa3ce5QksKsDIQT13DCHqSCD3xnmrdxHqljOYbyOOWKWWOFLmMmOTlOMAE8DI7HJ7GpN0NlcfbniaS3MgEmcSM0YwoyxPyDGAMA5JxxkYrYUbXbRQMWzy7ciKSdH+4duz5lyQOSeRjnA5FVsQ+Y6oly8S94/nTPc7WHB7fhU628Edw1vJC8yIuLeZRsIB5U4TO7P59KqXLIbp5GB+c7tzu2TkDuuQTxzyec+hpI6PU+qqKKK7D4oKQ9OKU1DPOkKZc8k/Ko5LfQUABmC3Ah5yUL5PQAEVKpDAEHIIzWFLDPPqTSXmYrZlCqFbh8Z4Yjp16fqa2441iQIgCqowAB2oG1YfRRRQIK5T4gxmTw/F0wtypOf91q6uuQ+IrbdAtuQAbtQcj/AGXqofEjOt/DZwVlF5l1EmCctkjqSBz+fHHvV1431a/aFcxWls0bsyx43ggkR55OMYz14PfOaSxkW30yS7eF3JcIGUAEdDz367at6LEU0C0dpQ8lwv2hpEHBZuf0BA55wBSxM7ysjHCwtHmZacBTsC7UA2kAAYHbH0yPXFUri8WNxGGVcjhi2AG46evYnNWHZUUsykIDw2MgH3ryj4gyaheXETJvlswm4hFP3sclu/I/LB968nEVX7SNKLSvuejRguVykegx6hHcNsZfLZgMgHKn8cfl+fekdc7s8k88jqK4rwpFqE2nxC6jlADEwFupU/dP0GD6DB4yOndOj7CMYwcE9CDz+lKlKTbjLWw6kYqzXUzL6zivIHt2j3q2Dz1OPf19+1cxZ2hupLnQbuQLKm+S0meRfmdsYTB9f5qa6wuAuVJ3EHJHQGud1D/RNRtL0JGJQXQGT7qkKXRyfZlBx6ZHetU7SsZNKx9JUUUV6JA2TIXisbxFax3mg3kFxcNbwPERJKjbSi45Of8AHg9Oelat1IY4wVVmJbGAKwte0yTXtGn0+ZpLeOXGXjYB1wQQQSCO3pT6Dja92eAX9nuguo7O9VLeLKAoAZZecqH4AGST/kiqszarqFpcp9kRBNGDH5kgVnUjgKO/t/TrW1rXhddC1WKxUXu4SCZ3tvnMyDJHX+LPHI/DHIwbxrZXtWFw8752eRHCts4PIzn+71HXGR1rie57cbNKxEbJZtTkkWwvZbZWMe62iKKWUkZCY/MY4xUUCma/a3029uRK6N5oZQDu6YxgAdeT+lEVsbvUrUW0t7YWhba00su6NmHUK2MZOcDnv+BnvPttvJN9lhvLWykYRQsyHL5P3iH+YEnHHHrxxT3C9tiFs4mtL++eaK2RAI0kDu74/gYDgfhUn2G3e0kMUM6C1RTdiecqqHJ3DB5LN0wO59BSW9tAJhcRq2+wXckNxEQ8zYzuOenOB+GfraurZ7G8ltQ1rfG7yRPeSjy7dgCznaeM4A45IKFRnoX1sF+46zktWlbyJ3hQBTGoJdEJzjOSccA4H1r6V8RWcGoaNNZ3BAjmBXOASODyAe46j6V856K1rK6qiwTW8K5kQRgCaUgDgYxxnp2+WvdfH2v/APCO6Zpt26obeTUEhn3Z+VCjncMd1IDds4xkZzVQ2ZyYi7lDl3Pn6+uLjQ4JLS+U280Ekgi8uRZP3gIzu55B2j2446VHeXlrLIJZhEwkUNJcLAFkEmBlVK/Lj68kA9eh9D8Y+GHu5RfaH5MIugftcy5cLnB3AAFlXIIyBxk9ADXCahpt9/bBsdQke0SIeZOs7KgJ4yydFOcE5UEn3xxKaZ6tOupx31G2ztfb0idJYIYwyxXkjRsh74I4PBzkgDk5HerE6QPdWl0lrFbW0qiNoJUDDdgjzMKcrx2x6nvVBDPd3e/V/tAe4zHFJAoxKgJB+ULnuT247iq97FAtm7o0Eru6jyQXDQhhjjcccY9vx5wNam0Zpx5mbMselx3k8m6S7jkUpJagmRkHJ3KcZwAFHPK/Xmrkd2be4miN/BsYGGKG5B3RI2OMj5S2DyOvXjqKzrGaCOYLaTTI7wCO4W6hAkzgBQjAEk4JIJHYdeK7rwDo9vKZpb8XQtLNCJYrvb5e7JJG3GDgAE+h57jA1rYipU9nFyZy/iBJNN1ZoLiMohijikFqT8reWuNpK/KPcdfar1jb+VaIq6rdBgOWdFC/QKQDge5qrc6i+satqCKZ1ctJIkTR7kUknaG5xjk4bnoe1Qx6RI6jyYoZMjpaXhJ/I5/IgVDOimuaCu9T6WoopksixRtIxwqjJrt2PjgkdUXLMAPUmsqO+SJ2lljd5WJAPGNueMc+mKgmu3uJM7vkzkL6DtTfLVhzzXHPEa2idcKCt7xdh1SG7LRmBgOnIFSWd3GZfISYOpBZMnkD0P8ASsuOIQwyMcZ6c1m2v2ibUFaB9rIc57H60QrtvUJUF0O1zS1FDKsqfK4YjhsdjUtdiOTZ2CuT+ILbdEtSVVsXanDdPuPXWd65P4hAHQIAW25ul5/4C9XBe8jKu/3bOFupBcaCzxQhCZWZWB4yNpHA6njFbWk7G8P6eFUgLaopUjoQMEY+oI9iKyLdZY7CR+PkIkQ9+Ov8u+aseFJVXSPsG8NJbseS2TsYkrxknH3lBPTaO1Y1tKhNB3pkuqwSS2rpFuDk8HHK8cH8K4PR7HXdHuJba8miubFgwPmOzMQQfujnjjnt15PbV1n4h22nanNY3Om3aGOTazEru9M4/qOCK1NI+xaroltdh1lEocGTHQ7849scD8PevLxGFlKTcHv3O+lXSjYgsGma5mMke+GRBJE+R13MGVcHnsen8dcnL4p8SHWFtZNMRYAwAyjcDr9/PXBGc9/Sup1i8g03V9Pnu0dbLZMkj4OEYhHGeCeRGeg/Osm01zRrvXp4Fvy9oyK0asjJ85LbgMgN028HqenpVRpzpWjBKwc0JNuRsGVZ7dZIzknn3Ge3t0rE1sIqW8ZKfvbqMBXAIPzDPB68ZrqJlRMNx8qn6ED0/wA/lXEatc/a9cs7VFMmxssqoWIJIAwByTw34Grs9L7kaH03RRRXpGRHLjYM+tRDjoo9s1NIMr+NMCClqB5J8UtMja5hunV0jkTy/NjkZAGByu4ZwcjOD1wD6V5Z/ohSKzYRxqB5kslwPmlk/ulgMn8Ow96+ndX0e01Szkt7yFJYX+9G6hg2ORkH3A/KvB/Funz6ffmB5zFZSzbVtZjvLBSOBtHyrx36CsakHuj0sLVTXKzmbu1N1Os0MMlslsytPJanfEF7FQehz2OOlMJ86+VrYSSI6H5tSkyjnI+4AOT+eK1Zt9rewtp32OxhlOSXdhuHPJBVRj3A6nGao3Fl/pBt98d/5uZlVJ/Kijb6Agg5/T9Mop7WOnmj3KC2dvDMlvKpjVyDM0hxMny9BzypwcY/Wr6CxuWmu0jW3uppS8ckkfmJJwe7ZBz16Va0/SpLxxElml3frLl0kDPsXsM4GByMdM+9emeFPBWryXS32pq0Ajz5MKuNg9OO469h+NaRg3qY1a0I+pf8KeCVszFeailskgCkLHwuc9fr71F8ed3/AAgtnszk6lGOBnqkg5r0S3sYYixVAMgZHXB+v5fkK4T42bT4Jtw8RkU3y9FJK/u5OeOn1rd6I4aF51ldnn/g/wAbyLaQ2RlUtHGq/ZnX+IDaSrHv9OnfNdRfS6R4qtUivdw8tj5SsoTaSeSzblYg8cgrng4x08Qnijtrl5IWmVEjGW2nA4yAcgGrmn+J72zkj8xvO80527uR7ZrmdJ7xO9x5HZnq0Hw+06SYpd6heIGOLNIhyBgccq+QMAZzUU/g29s5LQacy3McD42XEfKDIOSdo3cgE/T2rhofGcTZQq/PDKWA/l+NXYvF0d3OLaAOzY4YzADHT+LgVHLU7GsKkk7qR6JpHhbR9KRbvWb22vLyBQiSyERiJc4ClQcE5J6qDnoRxUXj6+NnpEGnaTHCkV40kt0HYjcgG5t56jO4MTweM5A5rgLn4hIipHapEkdkwwrJuaRum4seRg56Y4IHuHalqDapqs15c3REd7AXlMLLyq4+ULgH5RtGDjcRnPpcU1uKnSdSfNJlXTNSjtYraWylkKhywiNv50kXHA3fLkYPPTlRjNP87TZJCn2i1TufOSSE/kA1TxSR2ctrc38402OSIYihnDF3HG7Iz8pGeCeueOeNQ3ul3CKIdV47+aY2H8lqWetFpH0OTgVj6/cCK3hi3Y3tkj1Udf1IrYbt9a5bxgxhFlcYyoZkx7sAf/ZTW2IbVN2PlKK/eIhS5VMlug7mlF0Xw6NlQc+lc9JqcaJtICj+EZzUkU0ksajKqT35zXlRZ6jibVzMojXMhBzubms+fUpEUwRAIB/EOre9Sm2VXUOzHg8k4rFubhDelQzKq9c96rnaJsje8MX8qawInYlbgHj3HP8AIGu4Brzfw4TN4ktAjlgNzNz0G0/416OPSvQw0nKOpwYlJS0HVzHjuF59EgVMZFyp5/3Wrp65bx67JocBVyp+0r07/K1dlP4kcVbSm7nnS7ojtfkLz85+UZznH+fxNI1ybKWG7sUbMRMhTgiRTjC56jIxnGeQp524LoDEXLzEheu4HoahQiRmUI7L8wGOoz1P+NaVqPtFdbnDQrezdnszVvNN0HxNafapLWC4VwFaXBWQYx8rYO4H1yTjIrPbTY/DwD6VbmO2Q/v7dTkuAOGXOfmHOR1YepwC2ZZhcyX9jcmO4CqCmQVkAzkOD1Gcg8huTgjJqzLql1EshubP9yoXLpJtJJYYOGwACTjr1HSuCSa0kehGUXrEzfFESat4UmmtWVhsE8bnJXA5P1Ozd1/nWDo3g3+x9f0+a8uYpZGWV1jjyyow24O48nq2cgc8c8VtzajbWd2+zSdQje5IZkYoFeQ5Awu/gnB4AyT1yeahijv7iO2/s8QQW0bBY3iVrqRCxztGAQgPIIJIGMZHGM+boaWJtc1iK2iaM/vJiDtiDcn3PoO3v75xWTpcUugQy67fpMtx5g8qN5AqXLOoJOOSdoIxnA54PArbkttN0iaNkZ7q7aR4zHnzPM93LLlcE4yG9Bz2rSacb+8F/f4yWJiRRwB3PpknOQPT3ydKVCcnsZ1K8YK19T6AoooroLENRSTRxLmSRUUHkswAp0sSzJtYuBnOVYqf0piWkMbbkjUNjBbHJ+poAZ58Vw/lDcQVJyVIBHscYNY2pQ6RvjRzZvcO4RUkcEkk4HA684rU1PSxqVssP2iWAq4cNExBzgjnHUc1kp4Yu0dGOsvIEOR5kAJ/MEUAOm8G6LckmSzTnnAGP/r1Rufh7oD2rQLZIsbdgSOR0x712GKRkDDFFwu1szmfDvhvTdEjMVqjklsl5CWJ/E10wqBbTbIXEnXtirAHvTdugtW7sTvXnfxpaRfBlsIp44ne/RB5hwGzHIMZ/wA9K9FxWF4t8ON4o0uKxF1HbhJvMYyQeaGGxlxjcuPvZzntUtaG+HmoVFKWx8zLJGrqjXrWj+WDJJdoT5pHAAUcAd/buaoz2n7qIRTLJF5fn3AVDmFicEA4HGOeeB6nnPs1v8C/sy4TxLJk8M32TkjuOXOOpx/Wlh+BUNsnlxeIp2hL72iltQVfjuAwz3/A4rFRmj154vDytd/n/keN2WlpIZhFMkUTIAhmVTvb0B7jjqOhIz1GYzYRvdW09rptyAU3PGyEg4Jyw6A+mOele4H4JWrq6vq+dpb7MwtiGgU/wj58Efh3NM/4Uo9zd/aNT8SyXrBNgzalcck9fMPrTtMlYjC6a/g/8jyWXT4We5uo7O8dHwHtvs5I2gBXGcfKQVYg44x61E8eiRQ2kW+WVmjySMEmTkAZx93p8oPPXIGK9lT4OzW8HkWvieaOIqdyNblgWPVv9Z6gGnN8IJWsxatrlu8Wcsr6aCG7/wDPTjnuKlxmaxxWFS0l+D/yPJ0ku9Nhjlso7adpU3LHH+9eNeNynrgZIxk9j7kwHXLcb/tuhWskn99kLMPyJxXsEfwgeE7INdjhgDCRYo7Nk2vgBmDLKCM4+709uBidfhO4kEn/AAkl0X77oFcH8HLUezkX9ew9vi/B/wCR6SayvEGlDV9IltlbZKPnifH3XHT/AAPsTWrRW8oqSsz51OzujxMxG1laGaLy543KurckH/P6Yq7bzuGDZ5HbNd/r/hO01wrMJDbXa4AmRQcj0I71kx/D9ox/yFc/9u//ANlXmywtSMvd1R6UMVTa97RnO3N9IY0EhG0HJA71cFlaX8HmFvK44K9uOP1rZfwEXTb/AGn+Pkf/AGVaOj+FF0xm867+0LnKr5ezH6nNFPD1Ob3loRVrwa916lTwf4fk06Se8uthkkGyPHZO/wCZA/KutpAoUAAAAdAKWvQhBQVkcMpOTuwrlPiAN2gwDJH+lLyP91q6usnxDog17T0tTMIdsokDFN/QEdMj1rWLs0zKrFyg0jyaUW5YCN2OFyynv/n2ohklt28wAI2Bt3DjHrg12p+HAOM6pkA5Gbf/AOyqxc+AvtHlf8TLaEGCPI+9/wCPVu6kdrnAsPU3scFZxC+keEkjcpIJGQRgZ/nT4Z32OyPlPukY6jgcj6Zrtrb4fG2nWVdVzgYIFvjI/wC+qD8PctIf7UwGZmUC3+6D2+92zRzwctdg9hVUVZanAXk6rGrOsGGbdKWiU7+oUnjtnI98VXur+4uGtTNdT+SJHLYPl5JHcL9P1r0KX4brKhU6njJBz9n6e33qgk+GBdFQawFUOHwLXjjt9+pfsk9CvZ1+pyFukUY+RRGvDNgY3E8f1qSNsFWIDPkg+9dqPh4cgtqoPXj7P/8AZUv/AAr4jdjVeScg/Z+n/j1aqrBLcy+r1r3aO3ooorjPVCkpHO1c5xWDJrF3f6pcabpsEkaQKRNfSJ8iOeioD95h1J5Axg9aAN+ivGtc8d6v4VvLzRLrXWmu1wRd3VipZQV5KLGFTvkbicd+uAw+JfEwhEza1qqqWCqps7dWcnG0Kpjy2cgcZyTxWsaTl1R3Ucvq1I8yaPaDmkzxXiA8ftFFImoa3dGULlN9zFEze2FC+p9OlZMnj/TvmkbWNU8xosALqshRSQBwA2SeeuMDqCf4X7F90P8As+SdnJH0Hk9iaN3v+Rr5quPHFjLCUN7Lcoc/Jc3l04PH0Oevf0qr/wAJtey6ZJDHa3kClCqItzOQMjjjhRQ6UVvI1eWJfbR9QI24Ag5BHWn1554J8SQ6Z8N9Mm1K6M85M8UMcY3yT7JXUKg74VQPQY5IHNehmsmmjy3ZScE9UJSPkDIobivMviBrt9qutWfgXQpWW8vQGvZ0ZSIISOQwzkcc4OMjHXJBQ4q7NK98fpf6ydF8PQ3N5MCyz3cEYdLcbTtfJOMbvz2nAO5croOha9bXD3/iDxHcTXTksbS0kcwRDGMgdc49fl5Py55q3pkWi+FLGPQ7BQkCcyyFgZJXP3mY92Pc/QAYArRl1CEWxEaAKqnAAAHSuedZLRGl7aJGVfSaPealFjxNewX0B+SH7bJEjEnjcgwGGSByPT6VzzeHviBoH+m+H/Ez67ATuNpqL/PtBGFDliD1O5sr07npzUkEk3ju4vDPgBQdivjHbPB9j+ZrvdM1CW3USQsRz8y9vyqVXS3FTctbFjwh8RLLxLO2m3UE2na1FnzbOcFScf3c47diAevXGa7NTk/hXAeNPCyeLtJTV9JQ2/iGx+e1nRtrMy8+WT0IPbPQ+mWFbPgDxWvjDwvBqRVUuVJhuUXOFkXrj2III9M4ySDXTFpq6FJLdHSzA+U2CQfUVly3TqpxI/8A30a1pBmNgOpFczcS4Uj0zTIKl5qVyh+W5mGPRzWaNYvFnVjeXGwMCQZW6fnUd/Nyeazi27qe1MR6xnjOazNflmi0W4lgdkkTa2VbBwGBPP0zV63fzLaKQHIZA35jNVtXG7RL8DJJt5Bgf7ppMD5k1PWPGVvqF3bR+IdYWOO4dEkbUJPug8dG9KqR6/4v8z5fFWrYzwWv5T+mTWz4khEWsXY7NIXH0b5v61gj/WGuN1Zps+ghl9HlUn1O58B6zrsOvebqPiHUL2NoT+6mnkZMqVcnBYjorDp0Jr1vxzc3NrokL2txLA5uVBaJypI2txkV4r4UKnWrdW/jSSP/AL6Rh/WvaPHo3aFAP+nlf/QWrtwEuaa5u55Oc0I0U1T2scD/AGxq/wD0FL7/AMCH/wAaVda1hTkape57ZnY/zP8AQ1B5dAjORjr24r6Llj2PkuaXcuG61W7vbWW51nVEMjDbDb3Lx7xnAJxlQMg8bTnnpwTPqWv6r9tuYob+4ihE7lVWVuOT/Fkn8M4HYAYp1tD5+q6ZOq5gdoE9QCu1SD7nbn6EVlyAvKzHO5jk5+v/ANeueEYueq6G85TUN+pJ/bOrj/mKX31+0P8A40f2zq//AEFL7/wIf/GofLoMddHLHsYc0+5N/bOr/wDQUvf/AAIf/Gk/tnV/+grff+BD/wCNQ+XSeXRyx7C5p9z3CiiivnD6UrahFPPp9xFbTeRO8bLHNjPlsQcNjvg84rEspdYTTEs4NO8i4RAjXFw4dPM4+cANllJyeoNdIaQ49KAPPdW8EyXeu6NeT30lxeCQrNM6ZSIbSQ8cZJVDlcAndgtnkiqWo/B+1ntrqez13Vmv2Rmge5mjK+bj5dxEeducZxzXe6paXE7W1xaFDPbO0iRyyOiOSjKASvT73UqwxnjOCIlfVbxtrQxWcfIbcfMdsjquOBznr19scs1jiKsfhZ8d+KmvP7fu1vZoJ5oHEMs9qzFJXA2l9zDJLFSxPcliOKzLLZJcJErmAyMF8xyCq59TjIH0r7D1b4deEtdihTUdFgmMQwrqzRtySTlkIJ5JP1J9a4zxF8F/h7ZQnUJ57zSLeIciG5yGPXgOrsW9AvJ6Ut9DNzfxSZ5dpWkvYasky3Wn3NufuxXzyTiU4H3VXZuIORjjkYPJAPW+GfE894l7cr4N8ORwQxkpqcdj5WxAMsWU7i52gnAYds8HNYsng7RNIlfUdUvNQj0bKmzsLxh9olPoVTgd+BgjPO3Bp1/f3uvJFZG3kstM3KtvpVopEkvcBwoyTjnaOenfBrso4e+6PNrZlUb5ab+f+XdmHpnji/j1q+ED21qLhTDBLLGG+z/MCAMYAHDHCgLubOAOK+tjXyjrnw78a2zKLPwrPFEx+VopUmfPXPDtt6dePrX1cayrON7R6HVRjvNrVjWOBmvGvA98tynjXx95nmzT3D21k7rlo1H3V4/hO6If8Ar2avFPhxY3EXw28RaU21b601UmaMuF27BFuOT0/wBW35VzT2Z109UZdjJeRSSyT5AJ3lc5J9T684P511um6vKYdgtXu5iCViOVRPTJPAHTONxxkgHFaiaYjWwjMqyDGV3Jwfep0sI7VSUVFBwW46geteQ6ktTfkikcx/Zd4+qy3dxaWREgGEt5mYrj0yi5/wA9e25b2/kHEkhI4ZPUf4/5/DQMOVCgBs85z/n0qM26eYrOWU8knGcVDlJ6sailsX9EuEi1DySwXzlwBj7zDkc+mN1cx4PibRfjF4t0mKJxZ3ka3yyNnG/KlgO2MysP+A+1dFpVkG1i3kWQEQbpNoHXKlef++qwdWnmg+PeiIhKxTacVf0Yfvzj81SvSwzfs0ZtJt+h6WelcffuVkkU9mNdg3SuQ1kbb2YADlun4V1HOcxfS/Oapxvk07UJo0c7pVHseM1QW8t1ODMh9lbJqhHr+isX0SyYnP7lR+mKuuiuhRgCpGCD0IrG8JTi48N2zht2Nyj6bjW03SpGj5s8URldTdjk744yCe/yAfzFcz0kFdx45gSHV2TOAm+NRjssjD+grjXFupGDKW9wAB+tcMo+8z6WjUvRho9jc8OPt1rTz2+0x5+m4V7r43XdosI/6eF/9BavBNLura3UOYJXmUgo3nAAHt/D/Wvf/GK7tIiH/Tcf+gtXXl7tUPLz1Xpxfkzz0x+1Hlj0q35dIY6+hUj47lJNH8xdXtQjuuZV3YOMgEHB/Ks8RkfzrZ0hANVgYj7pLfkCao+XWafvs0cfcKvl+1Hl+oq0Y6PLrXmM+UqeWPSjyx6Vb8ukMdHMHKet0UUV4B9AFFFFACYHoKZK6RRlnZUUdSSABTz0rD1r7XJqemW/lxvpcpk+2l2C/dUMgxnkEg5HoDnIzQAkmvySpI2n6dc3gRWbzFGxHIJG1WbG48cdB055ryHX/FofVjPC0esawmQjb82unqxPAI4LdAT95uenCj3YgKpBICgd+1edf8INo2u+Jb2eFJ4rFJSZxC4RZ5y3zgHqB6kHJzgFQoztRlCL9848ZQnWSjH7v8zznQvDmreKdXMqNJeXeSs9/PxFBx91cdOo+UDcdwzgZI9q8KeDNO8MQhox9o1Bo9k124+ZuhIAydqk44HYLkkjNbWn2Npp1rHaWNvHBbIPkjjUBRyTnA9SSffr61cAx6CqrYhzXKtEVQwsKWu7AAdKWiiuc6hp5HFeV+CFg0v4s+NtEdTJLeML3OPl2k7sf+Rx+Veq1454k1GPwx8cbe/Ecv2a404SXpjXcWBDxqPpuSL8cUrXNKfU7W7h/seSO38tnWdtsb8kH2J9cf1ok/d5Th9xOQTXUyRxzIUkQMjDkMKxrzQ4Q5mS58nHLGXLKB+Yx+dcFbCyveBpConoyjGhAwijJ9+lOCgZ/iY8cDr7Vny6toFhBJc3Hiqwe2jP7zyyHcew2sTn8DWbN8VvA+kW6XFteXOoySfL+5hJcfUNtA6jpUww0m/eLbf2Tt9I0xdPjkcAiadtz5Oce1eZePdcRfit4ahtj5clpcolzIccI7J+OCrMPbJrXufihqsrxnSPAOv3cTrkSTQtCp9MEK4x75ri/GVp411W8bXdR8LxabaQIVklhmSVvLIIy4DEnAY84GO+BkjvUeWNkKlF+0949/bpXJeIbcHUA+XVlw4aNyrA4x1HPY11rdPxrndfjzMjeqY/ImrOU4C+sYBI5ZGdmOWLuWJ+pNUILS2ifKW8Sk9wgBra1FcMaylOG/GmI9H8Fy+ZojLjHlzMPzAP9a6LnFcp4FlBtLuHusgb8xj+ldYelIOljw34k2/kasy9/NkP57X/APZ685l4evV/ilbkXskrdfNUr9GQD/2nXlE3D1w1VaZ9Lg5c2Hiy9ZtwK+j/ABWu7S4h/wBNh/6C1fNlmelfS/iRd2nRj/pqP5GujA/xPuOHPXelD5/ocX5ftSeXVwx+1Hle1e7zHyPKMsU23DN0xFKf/HGqt5fJ4rUs4cvKfSGT9VI/rVbyxioUvfZbj7qKZj9qPL9qtmP2o8selacxnylTy/ak8urflj0o8v2o5g5T0WiiivHPZCiiigAqG6tobu2kgnQPHIu1l6ZH1qaigDKOg6eYyhjkKNnI81+c9c8859/WtGGGOCMJFGqIOiqMCpMDOcUUAGBRRRQAUGiigBDyK8k+KmmXep+J9CtdKC/2jdqY8sBtCpIrhmOD8qkFiPavWm6VhXPhi2uvGNn4jklkM9pbPBFEcFBuJyw7g4JHv+FBUJcrucfqvhjxTDZTa5qXja7jFnbSTTW1hGYkfapPBZiv4lfwpLP4ceHV1aa5vrnWb6WRN7vLcMFcknP+rCnt0PqK9OA55pqxRoSVjVSepAxmpkm9ilUkcZpfgvwFYo4ttH01wxy32oeac/8AbTJFdVp9tp1lbCHToLWCAciO3RVUfgOKtPGjqVZQQeoIqq+l2LqVNrCPcIAfzFT76E5X3ZayvXihlV1KMAwIwQecis19Gg8nZBLcwHOcxTE/zrQhjWNcLk8dSck/j3qot9SHYkbpWNriFhE3bkVsms3WFzbIfRv6GqA4PU0wDWCeJSO1dLqi5BrmJiRJntTQjtvAko+03cfdo1b8jj+tduea868DSY1wjdw0LLx0JyK9E60MZ5h8VYTJ8wGNkUTZ9fmkB/8AQhXjNwPmr3v4l2ct3YW6QR7pZswoP77bkIH5Bj+FebSfDDxZKu9dOQEk/KZ0BH61yVYSc7pHt4HEU4UOWUrHJ2h5FfTuvjdYIP8ApqP5GvIdM+EGvOhe6uLS3bHCbyx/QV7HrC7rRB/00H8jW2Fi4zuzkzWvCrTioO9r/ocx5Y9KQxj0q4Y/ak8v2r1eY+e5RlqoQXDf9MiPzIH9ar+VV1VxHMD3Qf8Aoa0wRmojLVlyjoVPKo8urnl0nle1XzEcpTMdHl1c8r2pPK9qOYOU6+iiivOPRCiiigAooooAKKKKACiiigAooooAMUYoooAKKKKACiiigBMUuKKKAAjNQ3NuLiMISAAwbp6HpU1FAGc+hadKwL24bHqzY/LNOOiaUQAdNszj1gU/0q/RQBWFhbCWGRYlVoQQm0YAB68VYxS0UAJjFG0UtFACYqG6t/tMQTdtw2c4zU9FNO2omrqxm/2SP+e3/jv/ANek/sgf89v/AB3/AOvWnRVe0l3J9nHsZn9kDaw877wA+705B9faj+yB/wA9v/HP/r1p0UueQckTM/sgf89v/HP/AK9H9jj/AJ7f+Of/AF606KftJdw9nHsZf9jj/nt/45/9ej+x/wDpv/45/wDXrUoo9pLuHs49goooqCwAcC8AERcaXQEvdygBBQUFsAD/2QoK
class Chaojiying_Client(object):

    def __init__(self, username, password, soft_id):
        self.username = username
        password =  password.encode('utf8')
        self.password = md5(password).hexdigest()
        self.soft_id = soft_id
        self.base_params = {
            'user': self.username,
            'pass2': self.password,
            'softid': self.soft_id,
        }
        self.headers = {
            'Connection': 'Keep-Alive',
            'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
        }

    def PostPic(self, im, codetype):
        """
        im: 图片字节
        codetype: 题目类型 参考 http://www.chaojiying.com/price.html
        """
        params = {
            'codetype': codetype,
        }
        params.update(self.base_params)
        files = {'userfile': ('ccc.jpg', im)}
        r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers)
        return r.json()

    def ReportError(self, im_id):
        """
        im_id:报错题目的图片ID
        """
        params = {
            'id': im_id,
        }
        params.update(self.base_params)
        r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers)
        return r.json()

# chaojiying = Chaojiying_Client("XXXX", 'XXXX', '906563')    #用户中心>>软件ID 生成一个替换 906563
# im = open('12306.jpg', 'rb').read()                                                    #本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
# print(chaojiying.PostPic(im, 9004)['pic_str'])
# 上述代码为超级鹰提供的示例代码

#使用selenium打开登录页面
from selenium import webdriver
import time
from PIL import Image
from selenium.webdriver import ActionChains
bro = webdriver.Chrome()
bro.maximize_window()
bro.get('https://kyfw.12306.cn/otn/resources/login.html')
time.sleep(1)
bro.find_element_by_xpath("/html/body/div[2]/div[2]/ul/li[2]/a").click()
#save_screenshot就是将当前页面进行截图且保存
time.sleep(1)
bro.save_screenshot('bb.png')

#确定验证码图片对应的左上角和右下角的坐标(裁剪的区域就确定)
code_img_ele = bro.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div[2]/div[3]/div')
location = code_img_ele.location  # 验证码图片左上角的坐标 x,y
print('location:',location)
size = code_img_ele.size  #验证码标签对应的长和宽
print('size:',size)
#左上角和右下角坐标
# win10系统要在桌面-》显示设置-》125%到100%
rangle = (
int(location['x']), int(location['y']), int(location['x'] + size['width']), int(location['y'] + size['height']))
#至此验证码图片区域就确定下来了

i = Image.open('./bb.png')
# i1 = Image.open("./12306.jpg")
# print("12306:",i1.size)
code_img_name = './code.png'
#crop根据指定区域进行图片裁剪
frame = i.crop(rangle)
frame.save(code_img_name)

#将验证码图片提交给超级鹰进行识别
chaojiying = Chaojiying_Client("XXXXX", 'XXXX', '906563')    #用户中心>>软件ID 生成一个替换906563,前两个都是超级鹰用户和密码
im = open('code.png', 'rb').read()                                                    #本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
print(chaojiying.PostPic(im, 9004)['pic_str'])
result = chaojiying.PostPic(im, 9004)['pic_str']
# 返回形式为103,76|266,147 转换为[[103,76],[266,147]]
all_list = [] #要存储即将被点击的点的坐标  [[x1,y1],[x2,y2]]
if '|' in result:
    list_1 = result.split('|')
    count_1 = len(list_1)
    for i in range(count_1):
        xy_list = []
        x = int(list_1[i].split(',')[0])
        y = int(list_1[i].split(',')[1])
        xy_list.append(x)
        xy_list.append(y)
        all_list.append(xy_list)
else:
    x = int(result.split(',')[0])
    y = int(result.split(',')[1])
    xy_list = []
    xy_list.append(x)
    xy_list.append(y)
    all_list.append(xy_list)
print(all_list)
#遍历列表,使用动作链对每一个列表元素对应的x,y指定的位置进行点击操作
for l in all_list:
    x = l[0]
    y = l[1]
    ActionChains(bro).move_to_element_with_offset(code_img_ele, x, y).click().perform()
    time.sleep(0.5)

bro.find_element_by_id('J-userName').send_keys('XXXXXX.com')#12306账号
time.sleep(2)
bro.find_element_by_id('J-password').send_keys('XXXXXXX')#12306密码
time.sleep(2)
bro.find_element_by_id('J-login').click()
time.sleep(2)
# 鼠标拖动进度条
div = bro.find_element_by_xpath('//*[@id="nc_1_n1z"]')
div2 = bro.find_element_by_xpath('//*[@id="nc_1__scale_text"]/span')
size1 = div.size
size2 = div2.size
print("size1:",size1)
print("size2:",size2)
distance = int(size2["width"] - size1["width"])
print(distance)
#动作链
action = ActionChains(bro)
#点击长按指定的标签
action.drag_and_drop_by_offset(div,300, 0).perform()
#
# #
# for i in range(1):
#     #perform()立即执行动作链操作
#     #move_by_offset(x,y):x水平方向 y竖直方向
#     action.move_by_offset(distance,0).perform()
#     time.sleep(0.5)

#释放动作链
action.release()
time.sleep(2)
# bro.quit()
bro.find_element_by_xpath('//*[@id="pop_15953355951196447"]/div[2]/div[3]/a').click()
time.sleep(2)
bro.quit()

 

 成功界面

posted @ 2020-07-21 21:17  Knight66666  阅读(2730)  评论(0编辑  收藏  举报