https://stackoverflow.com/questions/923885/capture-html-canvas-as-gif-jpg-png-pdf

https://stackoverflow.com/questions/19395649/python-pil-create-and-save-image-from-data-uri

from binascii import a2b_base64

data = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxITEhUUEhQUFRUXGBcVFxgXFxUXGBQYGBYXGBQWFRUYHCggGB0lHBQXITIhJSkrLi4uFyAzODMsNygtLisBCgoKDg0OGxAQGywkICQsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLP/AABEIANcA6gMBEQACEQEDEQH/xAAbAAACAgMBAAAAAAAAAAAAAAAEBQMGAAIHAf/EAEEQAAIBAgQDBQQIBQMDBQEAAAECAwARBBIhMQVBUQYTImFxMoGRoQcUI0JSscHwYnKi0eFDgpIksvEVM1PC4nP/xAAaAQACAwEBAAAAAAAAAAAAAAADBAABAgUG/8QANhEAAgIBBAADBQcEAgMBAQAAAQIAAxEEEiExE0FRBSJhcZEUMoGhsdHhI0LB8FLxBhUzgmL/2gAMAwEAAhEDEQA/ANJMYZXA5Velq3uJL7Nqy08NWwFegI4wJxM5MIxM3SsjibAgZxBrW3MwTgyeFzUC47mS2YYl6wZIXFQTLxJ7ViYxPLVJYgePS6mjVHBmjEGFBD++jueYRBxLVhj4RSb9yESYGsS1mb1OowqyeNKA/JhwMCbstWIMwV96JjiZDcyS2lAHEI3MDxCXFNVPFrFipE1pxsYi44k/dUITZM9bDg1rfiBMIhW1DY5lTdmqgJYkEhogmwJtCtZYy8QpaEZgzaqlTKkkyrknOuzXDSfE3Oq0dGxdxj2quycCWeTQWFPRJYPfWhecPnibRxXNFBxAPGMMIobMZkCFCPShbpoGbqKyZsyWszBmVJQkcqXrSnE3EcsNnpk8jM2h8o6wTaUvYOZZk43oci/ekyismOLJ1OlCI5myeJ4zVYEAWg0hoomM8z0vpQWWGDSBmolYgrDAVXxU4TxFR3JgaHCSS1VBkTn3aniGJixOIaB8pRYJ8pAIeJFySAjmM0lztopNxauddbYljbfLB/DznQoSt6lDD1H4y48H4iuIgjmXQOt7b5WGjrfnZgR7qfqsFiBhEbKzW5Uw9Yb61stiUBCUitQi0JiYy1AZhlngqQUypJMqSRTwvBhUHpTLtjgSxzNp4q0rSRaym9aImg3lNlOtUDLK5h+GaqeCxGCHSlz3LmtXLzJVrBlTaqkE8Iq5qLsfHremKj5SZm+AkqrVhAYwApeaHcmU1gxhWnuapiRmmjNVgRYmQStW1EgMjz1orNB54NqgGJTNICutEzA4inHdoYIpu6lYo1gbspCWO3i6aEX20OulLvqqkfYxwfy+saSh3TcvMcFtBRxzFjKx2rwoDRYu1xEck4/Fh3ust+uUOx95PKlNVV7wsHlwfkYxp34Nfr184V2BwjRRTwtr3WIdFPVckTA+/Pm/3VjSAopT0P8AMvVsGZW9RLWiE7UWyxUGWmK6mc4WTgVhWDDIhGQqcGQyPRQIMwRpgKKEzAET0YgVNhkxNu9FVtkxJEjsKyTmaAxB5Y6IrSiIBLFrRweJjzkKw1giGBhEBtUzmZZfOGo9DImMTA9QiTEniFDaVIsVjo4x4mufwrqf7D1JApS7WVUjLtKLAHBMVr2phvqv9QJ99tB8TXOf23SPIytxJ4BkeM7RwnTI/wAv0oaf+RIpzsP5fvN7WPlN8BxKAkePL5MLU7X7f0to94lT8R/kcS1DA8x/GQRdSGHkQadS1HGVIMOvclVasmGAnrJUBmXEgatiLGDzURZUxTVmaEwVUswdzRBMSn9u42Z0DqDEV8DAeKN7nPZuYIy3U6G2liL1x/aOdwDDj188zqaELtOO/wDEI7F8QOQwP9wXjP8ADzT3X08ielF9nXkjwz5dTGto/vH4x8zjUGxB0IOxB3BrqnBGDENnpBOzP2bzRE/fRlJ5oYkjS5PtECEAnmb0iG8MPu8v08o09fibMS3CVQLCuPZaXbJnRRAgwIN9aBJAIuNwCDa/W1PaEkqRFNYMYMCxc1dWtZzi0VTYmj8CUBI/rNVma2z36w1VLxLJelJnMicXrQmCcweRKKDJiCslabkQiGRNJY0LkGF4Im6YijYzAkSTDuS1hrWbGVFLMcASBSeBNO0HFu4QonikI155QeVtrnzI514jU+3m1FhWjhB/d/y+Xw/Mw9unCLtJ94/l/M51xDHuxJfMx566A+gsPj50vkvyfrBV1KnX18/rAY5XJ1sPTS3uqmVfKE3joQwTG1r38gNqDt5lq2RNzLbY3P76VkpIVhmH4m6kEHLboT+f+ayitWdyEg/DiZK85E6H2T44mIXISokGwvq4tqdedem0Ov8AFXa/DfrD1nPHnHzx2rpgy2ECnW1HU5irrgwGV9aOo4gzIxJrWtsmZvIayJZkDtRAJQkOJRJEKOLg/sEHkaHZStg2tC1syNuWVteGtA4kW5C638tiG9QTrtfe1coadtPZuHInT8Zbk2nuMTir6qrMvVbH+m+YfCm/tGeQCR8IHwcdnEW8Y4jHkNj47NGVsQbMDe4I5EKfdbnQtRehTg89YmqqWDc9dx3geMROgAkW5WxBNiCRrYHn6Vfg6a8DBwfpMF76yeMiD8FaOAvAPaBz5ibmRW9kseo9k+gPOmNPWqE1+Y5+cXvLOBYfl8oTisRenwMCKgRSmKD3tyJU+RG/786CLA3UZNe3uSZ6uZm/e1OZJbKBFcz2pJBZ3tRFGZqByTUYLIGgUktzQmHMKGniirziTGYdhcUkKtK/Iaeemtq8X/5bqrHCaOo/e5b5eQP5/Sdb2dR7rXN5dTlXa/FYieQPGwIzklSeZN7kDXTbTyrPsyquinBHM3Wm4l+smbJmKhVGxJAHnbT5A+tCtsBPJ684DU4ttwg4nv1KUnRfXp/mhG1F7MCumc9D8pGY5FtcMOQ0Iv6XqwUbo5mDUy/eEmjzE6m+mv6ae6stgdSc4krLpvvvVLKE9w7MrXW+m5tfS+p6dK3tB56kYDHEv/Z/tm5CpiLNsM1srjzI2bl0PrXQ0vtBlIFmCPXz/GZ8TH3pa8TXo6znqW0UOdacHUWYSNd60epiTyA6UMTWJBOLURZY4g+aoZsTCTS7nmMIOIvx0CAX7tSzHKosBdjc6kctyfQ0s6IOhyYZWY+fEjw3C0S5IVmO5IFv9q8hRqtMq8kZMHZezcTaXAQt7USf8QD8RR/s9TdqIHxXHRMS8Y4WsQEkWdAp8eRmvlJ3Ukm3T30pqNMK8WJkY7x6Rim8uSj856zNsPBiGdhHiCYxoGdVa55gbZrHnRK1udjsf3fUjMw7VqBuXmC4qOaOYJ3qZpgbMUygsoAANibEg7+lAtW2u3G/lvPHpDVuj1529QmWTGRJmIw7Ab3MlzfpZQK1ZZfQm5yDMKKbWwoIiRsdir//ALI+Vq5h1Fh53GOCtP8AiJ16u3PPz2pJFuONMVCQxchJNHlSRYLmhsBNg4kyYehkQgaVvtvj5YkyrougJG5JBI215H4fHwmt02/2i72c8jHywJ6rTKH0aqg+cS9n+ApKC+djnububag5QOp+9YjkOWopbWaw1DaB9P8AflFho7HJB4l4wOBhw6hUXkBc6k9N683bdbcSWM6dGmSscCExqutlH96CS3mYxtAm2K4WsyWkXTrYXHmKiahqWypi91ddg2tK/wAS7NxxRMQ502G2vTQ610tPr3ssAxOdb7PQIWGeOZVTASdLn1rsBpx4dhYLaW21rJbMyfjDxABr3ZJ56jXXp09L7irwOw3MxsHYMsHBsbJGAHJMRvYG5ZPMX1K610NB7QOnbFp90/l/EEG2cOY4ZNbjWvYI4ZcjqU3InkcWtaLcTAEL7ugM+IyiSHF4a4rdduDI1Zi147UwXBgwhmsZNZ2gzW4rIJxmxESdI5X9941HyZvjQGA8UD4GbFn9Mn4iTywkU0oEBvmqpet9TJaCcXOSI6AlyI1B+8z+ED5n4UDUPhCB58fWboGXGehz9Jpw6Luz3EhAYX7smw71N9P41vYjfQNsaxTZ4Y8NvLr4iXaDZ/UX8fh/ESfSFhCO4IB3cf8AZSHtR87T8437P/u/CD8P4i8yCOQj2gFcDMznYLkBzM2vL39a5z6my1RW/kePUx9aFUlxxHS9mZbf+1L8cOPl3ht6XNEGmfHR/KY8VPX8pcRXanBmMagkAizFa3pmuQiR4eHWtO0ziGpCKCWmpk0VRWklY7TSIxCutyEJF9RqdbD3fKvLe2nCaj44E97/AOO0j7H4h6yc/hKtiuMHC5YgmaIbrc3zaliCDpdje1cRKRqRuJ5jGqp2kWJ5xth+0GcAj2SAPMWHOkH0e0kHuCVhHuD4he1jSFlGMwuIyHElUHM1gNTrS/2dm6Ez4JcjAlfxnFGnvl9gE28/O9dXT6ZaOT3E/bDrpl8BT7xHPygTwgHXW37uf701unmZLEQD5jrfpfmN6stxzMMYfhW/EDf03/WheJt7mAQIWpLMNNDvoN+Wo/YogsB7gyQxwY/4cgKWve3LUm3lpr6V6DQa81rjOR6QhTK/GGfV+Y2rvV3rYMgzC1tNwNKxa8cqTHcHxFzQ62JMI4AEAxGHJroqAe4i1mDxNsPB1rTN6QBbMDgUHGykkARwKpvsMzFySeWi0pu/qk/CGI/oj4mSHjWDb/XiH8zBf+61aXUp6iZ+z2D+0xa/abCBrBmPmFNvnr8qo66vrMINJYREvH+OxvNh2jJKRsHbQjXML6HyHzpe7VKWUjoGHq07KGB84k7U9p2nPdqwMYzC6iSNZAdiyMxN1tobjW+m1JarX7ztX6xjT6YV+8e4sTM0ZLlmAFwGJIHIWvtqRSAdieyY1x3IY5gB4RlOmo0IO4tbbWttmQGdAwv0kWRQ8JZgoDNcDMwHiNr6XOtOjXccwR0wPnLiDXbnBmkjVYEsQNhejA4l4kmHWsuZnEMQUEypkiaVAZJVO1fBmkGeO+bKUNt8pvYgc7En41yfa+ia7bagyV7HqJ6L2P7U8CttO5wG5B9D/MXRdgIpLM88rLvYBQfO7a/kKlPsqrAZTwfhM2e27lyu0Zk0/YPJc4aXQ/6cmo/2uNR6Ee+gav2Pv5rPPxk0/tgDi1fp+0UYiR8M2SYZDYnW1mt0YaHn8K85qNDZW21hzPRaa5Lk3VnInmAilxjju0Ygga/wk6En5j1q10xTgDJjze0a9JQWHLeQ9T+3xlgkgihyoJFdhoVTxZDp7TDS9Yv07Ly7AfCeJv3u5ttbk8mCYjEAGwAvfXW5HTbS+/lWKqsDJEXZsDmQJiwraA+t9vQVGBIxmL+Jk4jGDEK4323vf0/fpQ9rJNbVPU2gITVS/u/SqsLtyZQqU8GMMLxCxBzE8xuPz9PzrdV9in3uR9Jl1ZB/TP15jrAcWQ3uRfkCefS4/WuhpdYyMeflmXU7DO/uMcNMkmq+v+Qedd/T6pLxjo+kZFuZjpankGJTNxBmFHESfuehKmYOVpeH/WJMcudkzPElwAdEjtYjmNdrjaldu8sMx0v4aocZ4MSv9H8wPhmjI884+QB/OgfYz6wn2xfSGYHsCAQZpiw/Ci5b/wC8k6e4etaXRj+4zLa3/iIj7b4BIZwsahU7tSAPUg3J1J03OtC1SBSAPSF01hcEt6xNg+yGJn7t4gCkha5JsI8rWOe/I8rXOh6UnXQ1jYWM22Ki5adHwvZWKPCPhx4mdbM5G7bqbcgrWIHl11rrV6RErKjs+c5h1TNYG8h5TkYiYMQQdDlPkRyNchlxOuDPM1tKztmszuqGvUGee2zyRKgM0Vg6JrRCeJJNEtYYzJhCihmYm1VJBcSwUEk2A1rRsCDJha62sOFmQEEAjUHUHqDtWjBmTFaxu9ZaqWOBE3GDh8SrQFPrBuNFNlQ8iZRoh9NbUraBcu1Rn4+X+/KdHSs+kcWFsH09fmJVeGTylSpPdx//AApZQgUAZHI1a1rHXlXl9Zc9ZKrx6w+u1Ngs2qc8d/PmFYp9QI1A91gq6+K3UWuBY8+lI0Kh3PYcxJH93LSIcPD6kXANyTuzWsDY7bUR7LDwJguc5JmuIRMxs1xv60u2c8QiL6wGSUqbbA686IMHnGZTAg4zCosXcWOv6UF++BNDGOTNM516em9aB28SiueoSMQwtf5/vSjlSF3flJ4fu4aGYTjEiEaki/Pced+dbXnDIeYuQVMtPD+0aS2WSysdmHsn16ev5V19H7U52XcH1/eb8XcMHuM2Su8rZEE08rUxFPBlyy4peffB/c8asP1oSDBPzh7TlVPwjaiQMypJE3aThPfKrKqu8dyFOzqfaTyPMHqPOg31eIvHcPRb4bc9QDszi0WONUuFUZWzCxuCc1+hzVzdO/hW+98jOncgtqwPwlmauyJxZz3tpwMRyNiF9iQjOPwv+L0b8/WudrKce+Op1dLduG09ymyYFrn1NIRvE6TF2hUNYmup9szA/ZhG0PFEfYii06gMcQVtGBmFCx1FO9TmtwZHi8dHFl7xsua4F72uPOhswAyTIqM/3YVGwIuCCDsRUgyMcGZLKFF2NhVE45MtULHAlb4gwxDfaNlhW7ML2LZdlv05mkjejPluh18Z1VoZK9qdnszOI9qIowRERIwt4UBcn+Gy7bGrOqss/wDmv+ZS6SpP/oZBwfAYzEuXx4yxWukSuRrf/UC+1pyv7qKlTZzbg/D/AHiAt1CAbaePjLXBAqKFRQqjQAAAD3CmMxLuVni+CIxBy+y4zt+R+L/n515L24nhvv8AX/qGJJwT5SPHYHUXsLgHnex0A/p+dcmmtggJ+cpzlgJEuu36adKfSvA3P3Bq5duOBBMTCocnYG3u60q1ZIJ8o2CFMU8Uk1FqsAASwM8zXDsQPM1nzmgAYUjm1Qy9s2aW4AI1/T92+dPBFeoA9ibDjGDN1ttcXH79a5+yxWyBMWLkSLEcPZvFG4DDW1/a9CNVP7tzDYdSMMDElAzhuI87PcfeMiOe5X8vP0p/Q6hqTtJyv6fKWV28MfkY67WYnFxwq+DjErZhmW1yUIOoXc620GvzrvO7FcpNVKm7FkXdhcNivtp8WGWSbJcMApOTMAcg9gZWVbGx8J05mU7sZbuE1LJwqeUtVGisypJMqSpSu2nD3hJxUIOU275V6jaW3yb49SEdXRuG4R7SX7TsP4Rt2P459agubZ0OVwP6TbzH5GmNNZvQZg9VXtfI6MZY3DLIjI4urCxH72PnTDKGG0wCOVORKRJ2PxNzlaErc2JZgSORICGx99cw6B88GdMaxMciEY3s4G1G/Kuq2jraLjVMJWeJCbDMCCbVz9RpzQdyx2q0WjBl57L8UEqA10q2FlYYTl3psfEm7U4qEQkSMAw1Ubm4/Ib0C8LsIaa0ofxAQJW8Dx9owcjCx5HUDzFcqvUPWMCdKyhLD7wkGCwvEMa72mjSIH2t25aBd/ypmoNqBuYwVtqafhRLNgeyUEf/ALpaduspuvuT2R+dO101r0PrEbNVY/nj5RthcJGhORFW++UAXtte1HJ4gDz3DQaGZpUJgmJxttFqvlGlrAGTFeOzHK565T6MVP8A9a4ft7Ts1SsfX9YC9kOMeUCxWJzBnG4HTQLcKo+e1ecZPX/ccQKXBjnzkWi2HM2J8hy/WmaWdicciaLIjDPcW8QkYsRtYfO9/wAtKtFJJOJvxjnEVzG51/xUFDHIhw4AhEUbEfv5UqxCnBhAYSIdOlqEX97E2RxIVjNN7zjMFtOZExsxI5b01WG8MH1m2XjMY4HEqSL6edLOmfumLPWD3G+MWF1UOVRtg1mF/NjqAfPSt0K7HAAxMVqWGBGfDMU0JWKU+E2VW5A/d16Ha3LTYCuzob2rfw36PUGxYNtb8DHhrtSp5UkmVJcypKmVJIn4d2eigneaHwCRcrxj2Mwa4ZR93mLba6W55VFUkjzhWtZl2nymna0zDDMYL5wRe3tFeYTz2916X1240kA4jGgwLckZ/wASmphuKWH2rjTYvqPI1wuf+R+p/edrPwH0EuiNXtDPOGIu1eFRk1IBP7vSuqsQVkNGtIrbsiVHD41o/ssMSxbnsP8AHOuXTbb9yvzj9iJ95/KWThPYnvCJMZIXJ/01JC/7m3Pyp1dKAc2HJ/36xCzWHqsYEC7b9nO4Amw4tGAFdRrk6MPI0vq9ONu9B12P8wml1BY7XPMrHDOMywuHjYhh8COhHMVz67WQ7ljj1q4w061wHjKYqESLodnX8LdPTpXbptWxdwnGuqNbYMaxxczWnsAELTQW5MFxjE6CsJuf5Rl9lQmYfCDnR87eBEHsLGacZgvA1uVm9LEXPwvSWtXxKSPx+kHjPErEEt1XS6l/FrbYGw/rv7hXkrk2H3hwSYpS2Bj4zTGublyQL3sB+EXA9NBVpYVAz5wzpubI7ieSfM1xc/rREuCrgCFSo95kYkB6f4rLsSRiOJgDmHwRm1x7x0PUUC0DcSZe4+UkXML87+uh6igEAniar3eZkL4mx9m3rTApOOTNE8wCQ3zHbnentM6HCN1MjIkQnZT4rjzG1Es0RIzWcyiAeo+4NiVYgObjXmL6ix33pAm2pveUwDVHO5ZaMBhroYpNQNvTyPlW6tVztf8A6i2C+WPl3DMPjQHEUh8X3Cf9UC17fxC4uPMda9JpNSHXaTz/AL+c0vI4htPSTKkuZUlTKkuZVyTV0B/e1YdA67TNV2NW25ZplbqPhSJ9nj/l+U6H/sP/AOfzlNxnGwq+Hc7dTy0FM2+0CfdqE3XowOXgsHCJsQc0xMab5fvN69KzVo3c7rT+8lurVBtriHi+COHmDKLC9TUV+A4depup/FQgy/8AZ/HCRBryrobhYoYTl21lGwZLjOO4RSY5JUudCu+nMGhM6ofeIEuumw8gShdoeyO82CPex7lFOYp6dR8652o0gb3qfp+37To1Xke7Z9YN2B4mYcWinRZD3bg9fuG3UNp/uNLaaw1vg+fcNdWHGfSdXnxfIV0kqaw5PUC9i1jA7mRLzNN8AYE5ljljkwisQc0mAsQdQdCOo5ipjPEgOJRJoQiFA3sMAQbXvdhr5HKjj1rzWvo2ZHpFyoQkg8H8oo4jMVUdS9j5DXN/3VzNNX4hIPpM1HJJMA+uZUIB0PO3M6W8v8UQVsMiO1k4msOKBXKNTz9B+/lVFCPehGYbcRpgsUchB2Gvn5itEbhxKRjJIZ7G4N+n/mhFA4wYRWIOZJNIknkeh5fpWQjKMNC5BkEkLWsliT1FxbpaiVEbsniQnAm+FxDIcuJiITlKgLKP/wCi7r66imN/mh/CZ5j7C8DRgHiIZTqCpBB81Iq/tZYYbuWFzLRwzDFVtqdhY7C3TpXM1Y94FfOFC4EF45wmLExtFIGW+qsNGjcexIh3DA8x+prOj1nhPhjFGr2vvTic94R9Ik+CnbB8WUsUNhOouSPusyj21I1zDXqCb29pRqg6gwrULYu6v6TqGDxSSoskbB0YXVhsRTYIIyIoQQcGTVczMqSSLE4gIATmNyFAVSxJPIADyJvsACahOJpVycSE49Mt1N78tiDzDDkaWu1aVj1PpGqtG7nngSL60/8ADXP/APYW/CPfYqvSVvhuBSPX2n5sdT7uldvT6dKhx36xS61n76jiNqbipi7j/DhKh01odlYsXaYSmwo0rnZnESRymLW35VzabDQ5Ruo/ZWLVDCbL9H8zsWMqISb2AY/rWfsIbkv+X8zL6zacbYfguymJwrd5HiVzD7uU5WHRtdqE2nNZ9wwyWhx7wg/aQRSr3jAQYlCCNPaIO2ntjoaJZp9y77Dgyks52qMiOcXxaf6ssmHizOSARzU3s1x1B5cqzqE1NmMDA9B/mVU1KZyefjHnC1cRqJDme12Pmd7V0ETYoX0nKufe5aMBUgpDiTpWk7klH7ZQuhWQW7ttHOxDAeG5/Da/wv6I+0NNuHiL5d/L+Jmz3k2yl4vHlnILZlYhU8iTa3vYb1yxphWm9fxkrrJwgHI/OCMzOSEF1XnfduZt5/Kh7fPznXOn3VbUPXfxMmwEmY2OjXAA2v69DfT4UN68cicp1KxwuOZbqVF7E7eKsiv0m1JPMXNxHdVBBvqSLZTzBU/perNXmwhf7fWb4XiBJsSD/Lv+dYdBjImgT6R5gcUAdyo0Guwvtfe3Kl2Tf5SL3xH2A4zhzoWU+aHN8lv+lCbS2ryPzhDYiD3+I3hxGCBzKxVuZRHUn+bLa/voyad2HIgTq9OP7voDBuIcYdZopIs2QBgVbZwTqSL6bC38tNJow9ZDCbXXKMeYMeYTiUU40YowIupNj5W5MK4b+z/Csy+SJ0bKi65rORKt9JnYwY2C8Sj61Fcx6gd4h9qM35E7X2PkTXR9najwsoTkZ/3iJj+jxjvuUfsT2wnwSCJolkhBJKglZEOgbKT4dxsbancV6GrUbOD1CW6cWcide4PxeHExiSFrjmDoynoy8vyPK9Po4YZE59lbIcNDq1MQTEYrkvx/tXN1Otx7tf1nS02j/uf6RbioCoMoucurj8Sjc+bAa+4ilKtNZYMt16xx70Q4zzGceFBAIa4IBBAFiDsRT40FWOzETr3B+7KZFjZLgd229Frv1GcFYd6qcdx1E9dUGc9hClN6swZgmG4MO97wVzfaCggGdDRuY8kIW1K0akgbTGLaQxzFfFMfHGM0hsPmfICna8KPEeLWZP8ATSRcF4lBjIpFyXy+GRGFxqLjXY6e8fC+0u8QZEUepqnxmLMMWwQDyuWhlIDXuWic6KSfvCwAJ30B61FYYLg5H6QzrvOzGCPzlj4fiklQPGwZTsRRNwYZEVdCh2tDlrEHIZ62skhlwiyIyMAQwI1AI8tDpvaqYyTmnaTss2GfvE1hIc2y2KNla22lr5em9czVp4a5Xo9/CN6dQzg+Ynn0Z8NDwyvICT3uVb32CKffq5+FJWYz7s6FHC59YD9IEUeHxOZCFLRiS1swJuUZSvMEKD8+VZXniL3UZsz5HuUTiHEpZQFJso1Cgk2OoOXMSVBFvDe2gphEUTSoEmkOOmU+0W/mBNaaoTLVVnkwqLCmY3YqLfhyhvmL/OsY2iBe7wxgCPcBwyFdXBLdXD/M6qaGTmJvqHbz/P8A0y3cPiJUFFDDqCuXz1H9qyCM4ziIvgfe/SOsMotYj9D7gd/caMjhWzwYDb6GFthr7g38/l5UUlnGFT6QqsfMzGguQRoRpfbbQW91YOnYJ/UE6Sag+6VbmEx9+lnRrgG2VgGG33ea+gIrnDTKzHbOyNUj1A3LKt2n7KpipWlRvq7tq62zxM1tWFhmQnn7XWigunBGZhHpHCnEqDrxHAEsA4A0zxklSPIrcW8mA9KNXZg5U4M0y5HIyIbhPpXxoFnSOVfTIx9WU2/ppiy53XaTiBrqrRtwnSOxnaPDY+MtHcOlhJG3tITt6g2NjTFGlqA3Dn5/tB6nUWg46HwjrifFIcOoaZwoOg0JJ62UC9qNdfXUBvOMxanT2XH3InfgGJBIixWSMaItr5V+6t7chYVNjeRm/tC+a8xZDJW62jTrDonppWizLDImouYEiMIJgoua5WusGMTo6RMStdpO0OQ2XVj/AEjqa5qqQcmOsRjEqvC8HNxCbxuwQaSNyy8lQHmbe7836la85boRK6wUrx2Z0vB4OOCMRRKFUDQDfzJO5PnRdTYKq+PkIppVNtm5pOItLcqW9nWtkp+Ma1qAruibi2AMSmbDfZspDugHhmUEF1KjY2v4hrXTbJ6/7iVTbjtbr9PjHHDeIRzRiSJgynpyI3BHIjpWAdwyIKys1nBmO2tFA4goRFtWGlwLjyI0OWQXRnjVh1BdQdqBaFZcN1DUZ3cehlJiwbR5oEkMeHhZ+8k9lnJYtluOYBANul+YFci1FpJXudSollBlE7VYv6xMX1ygBEvcnKuxN9dTc++lks5zIzcxG2EvW/F5mYNLhypuDRUtzKIk0crEWbKw5ZgDbzB3HxqF4M0rnI4PwM2g4hKjAK7pfazEj0ytcVfBGZltNW/YB/COcN2hnU5mWKQjTVMrEdc6EEH+9CJU8Rc+z0/tJH4/4MaYftsdFVBEWIzM+IkZCBqwbMhKkgZQw1Fx0qbfx+XcGdARyTkfIR3gPpDwp0fvI+pMYcf84nUn/jVkWjlYP/17eok2J+kTBIRYvLqb5Ay2tto9r39aIj2n7w/OX9hsHTD6Q7C/SBgH3kkj/nV7fEXFMi1UHCY+UyadSOM5EZYbtFg5TZJ4WY8s1mPu0pW67PSmESqwcsMRgcOh3NlPIC49b8qwlNrHOMCOJqK0GN3PpKrx/sNDMCyeF/xLYEnzA0PvouSvYhQ+Ym+jbhs2D4g3fsqIY2jzFgBISVKBRzIsfTWmaNTXXkMcZkt072J7ozNu2HG/rGIYqbovgj6WF/F7zr7xXK1dvj2lvIcD/fjH9LV4NYXz84yHEE+7iMaq8lBjso5KPFsNqa8cjgZx8/4mCqnkgfT+Ybh5K6NTwLLGMMlOo0VdYfh2rVt2xZVdW4xT2g7RCMFI7FuvJf7muNY+5txnRVdowJXsDwWXEKZXJCcr7yHqPLz+FM0aZrvebgfrF7NQqHaO4X2bx4gdkc5VFG01oqLVvB6mrxAGWOl+sSYpMXhyJIbZCua2mzgg7NfX4daFqaXvIZCMSqLUpXY+QZcWcEbEetE02nNWSe5jUXCwYWCvJc0+BE+pSe0vZXGnFfWsFIieyxQsVBcCxJAGVrjTXzpexGLblbHw8jGE1FZTZYPxjDAdqLMI8ZG2HkOl2H2bH+F9tfWr8Yr/APQY+PY+sh0gfmls/Doy2YPEI4ujKw6gg1lbVs5WAuoeo4YSLjGGEkEin8JPvGo/Ks2LlSJKG22AxFJw5MVAxYFRLeRP4c5LBiAbEm9/Q0uNElyFm7bkH09P5jL6gowQdDj5+s5zxvs9NDcuLqDbMNiDsa5FulsoBLDj1hldXPEruLup6/n8KEmGE2BkzDZh7r1OVMswfuTy3re+URI8RELdf0raMcysTaCe+24686p0xNBMyVo1bQ3F/wB71gFl5EvawnkGHUEZcjhWBI/EAdVYWNr7XtWzZ5tmYPXM7P2b4rw3ERd0sEURAAMbIi3vyVjo/pvXGvW2s7gSfj+8VesMvIz+v1keL7DcPY5mwq25hC8ZHn4CKPVrHIwX/Hv9ZzV1N1Ryckeh8oFJ9HWBsWw5mjb+GV8wHo170RtXqKiPEwV9cDH8RldW1nKH8CBEy9lcXA+bD4kSW3jmuobyzpa3rpT1V62jH3T6iEGrDcOv0/maz8exOHH2qOrhrFJOltSkijK49OW9EYWqeTmdCgadgPWacamSezJna6GfvCLAKhAAUXOuYgG58ra0Ih2BIHUfXYmBE/Aoe9xUKE6F0Bv0zDN8qxThSCes5+kt8nM7I02GJJ+pM99c4hUh7/eB533v511Q1re9jv4Cc7FS8Z6+JlBjmIpVbWHUdKCS/XmGx+Qoo1Vg85g0rNZuMy2IBAvzA19x5VT3u/ci1qvUSltbkA+R28r0NTg5M0RxC5ePYgrl7w28gF9wsBYeVM/a7SMZgPs6A5xFjM7HT43+dCyTCS1cH7SnDxrF3YYKLXzEXPM7HU08upwoXHUTfTBmLZk83bSZtEiiH8zv+i1PtLek2NOo9Z7gu0cznxvBDvY91NNextuCoHpWxqS3ZA/AwbUKOlJ/ECMMJjJlJP1qDEKxuVYNCV8kuxAPkbCqDMDlWB+B/wB/xMstbABqyvxHP1kHDO0MGJeWCdVUg5SrZSrA8r3IbTmNDfSjLqxkq/Bg30jKA9Rz+sPTspHHY4SV4G5DNnQ/7WN7ehoZprzleD8P26mxrrtu20bh8R/mEDiWIiBXFw5k2MsN3FuZeP2l+Fqs717Gfl39P2zMhKLDms7T6Hr6yPs1Kpw8cYYOYkWMsDcMFFla/oBfoavS3BxjrHlJq9OyPuPR5/Hzh+O7numE7KsbeAliFHiNhYnY3It52otyq6lW6MXTOeJxvtbw1cNPkzqxA1AIJBudwPZuLG35V5+/TeCQFj9TFuYz7J9iWxGFadiUZ2+yXSzINM+o0zG9uoAOxpn7Az1ZB58v5mbNSqvt8vOKeP8AZ/EYcXZGtr4svL1BI6UkaLKz/UUj9PrDKyv90ynzTPc7etqZWtSJeyRtn0s2/QCr93zE1th/D8FiZXyRxSux10Uk72vtoL8zVCvf9yUxA5aX7hv0UYlwryyRxNzWxdhrzKEC9uho66JiPeOPziratQeOZLxb6OJIwCs3OxYklL/dvpmT+qqbQhVH5mbquWzIA59IfwCfisLrFLkxKst4/tFDWG4SQgBrD7ra1ydX7NTjbwT5joyrNILeuCJZ5O8H2mVo9bE6WuNCDYkD42pFfFp4YZE5N+jsq94jHxE8+srJo1lbryNFWoN71J//AD+0ELc8P36yNpd45UWSI8mswPuI/flTVGrwNrfTzE2W2/7+hgsnZ+EwzJhtO8jZVVicqsWV7AnUapt500twrRgeQ3n6fP69xuvWPuUscgH8ZWew/CsuNMeIVkktZUI0cbyG+xGVfeCR5VNPULHUHrudd9UpqLoZ1uu/OFOT3rz89NNWNSSQuKuSQOKkqDy5eYJ9DViUYM6+ZB/e1bEyZAXYbNp7+taDGZ2iT4biKqPGGv1U8htpV75NsNw3FoTlvKV65l0HlfSr3SbYRDxwXBJ/zV5kxImWKRu+gAjlYXLWBSTqs0ezg9d+d6mfWTEN4TxyQWIaSJ42t3bKWhUWNzG4W6qbncne1rWNVkqcgy9u8FWGZbIe3MISMvJHmfkCCB1uwNr35UUa1hwRAN7MU/dOPSVSTEfavJhMzRAqQ0JYyqTmLqw2ks34xcCwvQbLcn3R8vh6/hG6lIGGPz+M84/xIzCJcSzmMXdJI18BYXBE0J+8NQba2J86g1VjDDTJ01QOV4lZ4f2VxXfpPGuGxMPeEjM4WN+dnQ6gG+2taF6iU9DYxLZwn6TZB3oxcUYeORFKxkqchzLIVVicxVlXmAQ/K1PpqeMmcyzSc4BhXbX6S4EheLCHvpHXKXsckQZfa8Q8ba6AaAg32sbsuXHHMHTpmzluJzngPZHE4mLv80UEF7CWeQIrWNnK31bLrc6DQi96WFJbnqOvcqHHZ+EsuFxfBMCCD3uNlVSM4ULCz2Istzt/F4hrcXqKlKtzyYI+O444H5y2/R52dmjDY+dcs8y2WIeERQEhggXkxspsdra6lqZprC84/iAusDHZnj1+MvcGIV9jrzB0I9RRQcwD1sncH4jKD9jkZy4O2iqNrsx29N60FyOepSEqdwPUQLg7lhJrIpHdxxgxoDYWZnGrakEtp0tQLUqc+GACRz8B846ltijeTgH8SflLJg8OUQIzF+t9vQeXrc1VdCVjgRa7UvaeevSLOI8BDXMVlP4eRPl0pPUezK7DuT3T+URarPUrTTlSytuCVJFiLqSCGtuQQfOuW9YJ2XdjoiDZHr4IOP8Aep5FjSp3sfkfQ1giyg5HImVPnHXDuMhmBcLnGgaw57+l/Km6Lve319+Y9YcPLAJx0Pyrof8AsF81M3k+k5SrVzp6mbWqSTf6o5+6avBziVnzkT8Pk/A3wong2ekzvX1kJ4XKdo2+FWKbD0pmS6jszR+z2IOvdN7yB+tF+y3/APH9Jjxq/WL5OHOGs3g635UJlZPvCEBB6MCl4e5cql35DKpJ+FbRC/UyzBe5IMDLCG7zCubjQyIwykX200/xVtWw8j9JSup8x9ZEeM5PYhhQi2uW59+a96GTzzCiaHtPix7MpW/JQoH5VMCVuMm4r22xM0KRubFd3XRiLahrb+tTwwe5YtK9QGDi4tZo4xr4Sq7abG983+avaJgORzCIsZG8ilP+nJ9pkYqL8hYbX119KwwIEKjZOM4jf63iiki4hYpMOpXxSMqMxOoKSR+InzIPnWfd7E37w4MCixUGUJGuViRrLJZFAJ++gNwb21A2qsHOZQxjEb8S4JHi8pCxwYnKcvsiOew+7INL6fPlUBI85TKCOpRMdgGjdklQq4OoYa+VE3mBKgSKZ2bLmZmyjKuYk5FGyrf2R5CtbiezM4A6E073IQ4AJRlYBgCLhgRmHMeVaTg5lN1gzomG+mmYIO8wsbuPaKSMgI12QqxHLmacGoPmIgdGM8GSH6Y1Y+LAr5f9QVI9/c1f2j4TS6Yr001xf0qySJliwwQnQEztJe+mgyKPjUbUsR7vEtNKA2W5/KWHi/FzwgRiULip5LtIe8MeTTwhR3bDKASNxqSba6K6TUBQUx8SfWMavTeJhs48sQF/pe0NsJY8rz3F/P7Iab/Cm/tAiP2M+sbHtFLjYlGFZFMiuWz5wEtbwErYAm5W+bW4I0Nwq1rudpOI4tFdS7gM/rEuE4ng8M3dYiLExTakvMe9XMxOe0QKrla5N0UX3ud6osiD3k5/A/rBuht4JBE2IWVm7iWB13Ch2Btz8DjMD60p4gDEoOPTBir+zCBlDAxjGQ5TfTkRqPShtQG95OIg1TIcEQscV/jrHiXDiZx84vjajT1kJibWpnEmIX9aOwq1BJkJAHMIw2KLaNoetMIzr31BMFPUdYZLb12qNpGRObdnODNcViraVd1gUEmSmsscCKGwzYgM8dlUXUtuzHmB0pJam1fvHhfzMba5dN7o5b9JF2OTuZGVt779RWaidO+1pVii5cidETUaGnAwPM5zUEGCYnh8Emkkcb/zKrfmKtsHubRHHRMU43sJw6X/AEch6xsV+Wo+VLNRWfKNLZYPOV/G/RTCb91O6+TqrW965fyoZ0gPRhBqD5iIcZ9FWKHsPC/oxU/BgB86GdK46M0LkPcTnsTiomviI3jiHtOFWW19AAFJFzewPW1BsrsA6ha2QnuC8aicMo7l4449I1dTe3MvfUljqaAEZfvdw7WAnjqQx8J75XaA5SouY3Nv+L8/fVhj0ZTKDysgw+JmguGVrEeyb2PMEcr35ioVB6lAsvctzvG8UQx1pYnsIp4tJo7gmzAjUCxuDfblWPlN5DcGAcU7BTIhmw7jFQbhowc6j+OPU/C9bUrBOjCUzFC4sAbdbbkXog7g8GQGLlb+/wAq1mViSpD1/SpmTE3GHIIyGxFjY2I/flWu5UZdo8dJNlnklZ5HJVlKnwW2s99R5UtSuxiuIazlQ0URysbm+nK43660wTBYlt7H9omgVkIJUsCSBcpm0J320+PrQnXPM2rYl+w/abCzCz5DsfEBbkdBv/58qwruvRmiqt3IfroR37hou9lT7Nmv3cmS32bhCAjgbMLAi5tdTfbOX5aYCBRgSqYzt2ssLRzYUZ7lkkEjDu2IA1TLqLDa/OjKQKtncVto3vuJipePRW1aUHmBFGQD5EzgkeoFY2j1/L+YL7Gv+mP42pWdUSdHqSSeJtaNVjMw8Y4dxXSrwe4q+RD5cflAJHkaqotQSD1KsUWjI7gnf944UX8Wl/L73yrFr+PYK1684SoeChc9+UtcCAKFAsALWrr4x1OO2ScmVHjCZJ1I60nq6g7CP6dyFJlnweIOUb1tdOwGJk3KTC43NaFOO4Nrx5QqPNUKqII3mSmM1WRMeK09UEVODNrcR3F/Gbt3aD8as38qspPzIpW/7yL6n9I9Q4Ks3oP1inthwE42DIukiktGTca2sVvyBHzA6UW6jcvfMCmqCt8Ik4B2PgxeEjSeCWCSNe7ZxaNnfUObW+0AsviYG9zvY0JaE24K8yrNU6t7pyJX/pJ4X9SlhXDK3dOtsrFpA0mYghc5J9nLoOtAt0yjlBGdPq3cHeZHxPheMSFGkXIhUEMAQFuPZkFs0fTUD9KxZpnVcwteoR2wDzB+z/H5sDJpmCNo0bG6OOqH7p8xSRBjQYecvHGOzeCxsAxIJikYBy6rmygi/wBuF0bkb6Nbe9QNIVnMOOdl5sLZnUPEx8M0fijfTSzjY+RsaJugysUlNDpVgzJEL4VwufENlhjZyNyPZXzZjoPfVtYqjJMtaWf7ojbjuBhUiKF+8eMiLuwl+9OpeRXUlT4iRboBrQqXOSzDv9IW2sYAB6keG4XAoKYiyOwOVrlhGRspy7HrWi2TxMhMDmaQdlMVvBkmFtGidQxHMFWIPuoyDfwIJsLyYq4hhpY3yyoyPqcroUc87qLAN7qtq2XgiZDK3Rnn1yRSLmRWBDC6tcHk1iPLehlcdzY56kUwLEsdybnS1zz+dTOJMSePg0pAIXQgEbbHapvEINOxGZaFkoEklSWqkk8claU4MhjDDS09U8XdYZiJgEN6assAryYFEJfib8Dju2Yfd0H5n9KBoqd+XhdVaFwks8Ep511awRwZzbNp5Eq/HH+2T1oNzf1FEPUP6ZlswZXIKaOcxAyeGTWssOJmHQ0BpJNWJJlSSKOLo5nwwTk5L/yspT3+Ig/7aQ1rsACv9uD+06mgVdp3f3cfvGWSxp2m5bU3CJX0mtsGTVqAmGpLg0ig3BAIOhB1BHMEc6JKHE55xbs1FhJGkmaP/wBPIzGNgWkVibZIragXIs1+dtd65Oqr2t7n/U7+kcvXl+P8zfD8YkmjjThMkOHEd7QMtpn/AIg7NllJ5jf1pPaM5PcY3cYhuD40FzjF4R4ToJzEneQNmv4psKfEl9fEBuDrRgjuCw8u/X6QRcKdp/CSw9jOGzkYjCBZ0tYxJJeMX2bxHMtrHTX0qe62AOD+U0uVJzyPzlW7QcNxikpiWjweFU6BMoRhyEaIbyG3W1r+6hPWFbLcmFW1nHHA/OJcr27rAQsLxtKz6GV413dmuAo/hXr7qsAnkwZOOBKuHPW5NFUiCOTCcLjGSxVipHMEit8GZ5HUufBe2SyJ3OPRJojzdQSLc9dj5itC50HHI9DK8NGPPB9RGOP7OzPCP/TsQZYrAGGfVrA3AR5BmAv90ECgtaWXa0MKVVtwm/Zbs/hEaX62t2CrZHVkCkEl7bXPsj470TSrWAd/4ZgtV4nHh/jiWCCKHKvdpGEsMgzHRbeEfC1KtgsTtnQS0qoGepzdDUi0lU1UkmSSpJCsPLRq2mGEMlxAy2o91o2bZitPezGPAyQpN73N/SnNCu2v5xbVHc0fQvXRBiJEr/Goz3yGkbDm5Y6gxUZZYT4BXTE5h7h2ES4odhmYwjNqXMkmrEk8Y21/foKyxxCVpvPw8zFGJxBCiUsIHZguZgJAgFwFYDSxO5H4t9K52pOKSW7J5/CdOkf1tq9KOPxmv1zGLIFnWDujtKveBWHrqEPk1geRpTSXCqzOeD3D6io2IR5+Ucobiu7OFNwL7VUgBJwJHjEy6Cxc+8J5t1PlWFdrOF4Hr+0bFaUjdZyfIfvBlwiMrLIA4cFXza5gdwfLyohRQuBAte7vuJlc7Rdj4REhwsSoYtMqD2lve/UsCSb7m58qT1NIZMjyjemvbfhj3IeKcIxrYZe7xrxzIciCQoq6gEoZbFmGg0zaH0rmVWny6PE67Io7HPYlX4lwLFwZcaGw2EdiqmON2udbNJIQTnBuWOmgphylrBQAB18IEbkBYkkxpwiXi2HzSNh4ccJbHvFdHup2Ck7J5AWow0difcI/354gPttb9nHzg/bvjnEe7jd8GsCocqMCrZcw1UhNlNtjpcDmBVNprByeflzLTUVscKZzmSEnRwY23sVK/AHWsFCp5GJvORxBTGTqCN7WvUxJmYt6mDKnW+wvGJJ4FjCiRolCso8TWGitYG+thqBvQnU5hFMPxPCMPOZHDuGC2YZjeO2oYdCLfKhkGFRx0Z7H2ahYBmRSSASQTYk6kimF1gAA2j6TB0pJ7M5pHJS8uTh6kk2VqkkJjaqkhSC9aB9ZCMx7w42Artac4UTn3DmOYHp1TFCIm4tP9oorn3HFyxysf0jHeHm0ArqKZzmHMfYT2RQbO4PE8hxkTNlEkd72tnW9+lr0rZqK07MMmnsfyh2GaNgSJFa2+UhvdvSv20MdqKSYb7HgZdgJpNIFBZtAPl5+ZNMDKjc3f+9Qf3yK6+v1+cS8WBJwiobgzd5cHQqqs/wOg99crVWB9MrD1/edKpCt7/hGK4aVD/0sihecUgJQfyEap6ajyFcwkcGNwyMsR4wobmFN1B52J5V6XTHNKn4ThahSbiBBeIF2aNYHZLHNJIBcWGyKevnVbWtb3uF/M/xGMpp045c/lCHWwpleOJz2JY5MHmZgrFAC9jlBNgTyBI2rRkTGfekfDMaxLITdizMHX2FQnRb8mF7W8r1y1ubU5GNoXhvX5fvOwak0+GByT1+804rwlMQER1BhSxEZBsW3Zj+LepVpg+HHAz1jyl3avwsqwycdxNxvsJh5QGg/6eVdUZPZv0ZNiKeepHHI/EcTn16qxDycxH2Zmk4dMYcQvdLKbjX7GR+bQsdEJvqh52tSdni6fBzlf9+k6KijUqfX8474kvGmkf6s2BMJ1R2WQOAb2V1u3iFhraxo1Vxs6wIpbpa6h7xP4Rdiew+Mxaj6/j2bn3cUaKqG2tmsL72vaitXuGGP+P3glvSs/wBNfqZHF9E+EUnNLOy8lvGpHW7Bdfh8ayNNX8frNfbn9BEfG/oukS7YV+8G+RyFf0DaK39NCs0pHKmNV6pW+8JTr4nBy3tJBILrsVax3tm3HnSbKRw0ZUg9Q7hPHZElaRJ5EkkBVyQrB829xYVg5xNcQKHj+KRVQSGygKN9gLD8qJ4annEsXOB3MikoJEuGxGsy5OpqSQmKsmSGRGtZ4kEa4SbUCnNNawYIYC5FK7o4geuupnPZYi4ibzikrT/WEaQf05Y8Ovs11FnOeGtje7kAW5d1GUEnLfUDTYba+lcnXK7XBFPf0jukKrUWYdfWTYzhnfgd8sV9CSgIb/mdbUI6GwfdYSxraz2DD+GYKOEWjjVeupJPqbXNEr0+oQY3jHygrdRQ3JU/WTTYQOQXubA5QLgC4sW82tseXKmkBXs5irWj+wYg+C4NllDAju1vkTW6FlQNblY5SfVj1rl+0/uhQOM5nR0LbssTz1FeC4oRLOLGySMN/P8A81ydm5ROhgkxpg5TOM20fzfrfoPKvTUpitc+g4nH1Fgrche/M+nyjEC21FiExhpViSQCNyGyAFgCQGNgTyBI2rN1y1LuaH09BtbAiTsRhHVpidGeS7JclUbM+YKTysVoXheFSSezkn5xt3D3qAOB18pZcS57xgfKw6ULSHgyteB7pivtFxuLB4d55b5VtoouWY6Ko6XPM6U0TgZiKIXYKPOVvhHZl8W/1vidnZ1+ywwN4sOjbX5O5HP/ABagvm3/AF/v/UM1orGyv8T5n+IeuBxOBu2FYTwAEth5W8SqP/hmPIfhbTzFBfSgndXwfy/iHq1mRtsnvZftjHjZJEVctspTfVSNQehBB8qzTqM8P3Jfo8e8kstNRDqRstaBhK28pFjMBFMmSaNJF6OoYDzF9j5issAe4fkcgznfbD6NFy95gVOa/iiLi2W28Zfn5M1K2aYYykLTrOcWfWcnxELo7K2hUlSLjQg2I0oPht6RvcDP/9k='

binary_data = a2b_base64(data)

fd = open('image.png', 'wb')
fd.write(binary_data)
fd.close()

  

import urllib.parse

up = urllib.parse.urlparse(url)
head, data = up.path.split(',', 1)
bits = head.split(';')
mime_type = bits[0] if bits[0] else 'text/plain'
charset, b64 = 'ASCII', False
for bit in bits:
if bit.startswith('charset='):
charset = bit[8:]
elif bit == 'base64':
b64 = True # Do something smart with charset and b64 instead of assuming
plaindata = data.decode("base64") # Do something smart with mime_type
with open('spam.jpg', 'wb') as f:
f.write(plaindata)

  

*******

https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toDataURL#Examples

https://stackoverflow.com/questions/923885/capture-html-canvas-as-gif-jpg-png-pdf/3514404#3514404

Capture HTML Canvas as gif/jpg/png/pdf?的更多相关文章

  1. export html to canvas image

    export html to canvas image canvas.toDataURL https://developer.mozilla.org/en-US/docs/Web/API/HTMLCa ...

  2. 使用canvas保存网页为pdf文件支持跨域

    前言 之前上一篇随笔说了Canvas截图网页为图片,下来个新需求,把网页截图后保存为PDF文件供用户下载. 前文 Canvas截图网页为图片:https://www.cnblogs.com/bubub ...

  3. 如何给现有的PDF文件添加页码

    如何给现有的PDF文件添加页码 之前我写了如何打印PDF文件,有人qq问我怎样在打印时给PDF文件添加页码,的确,给PDF文件添加页码,可以帮助我们区分纸质档的PDF文件页面的先后顺序,方便我们对它的 ...

  4. 让自己也能使用Canvas

    <canvas> 是 HTML5 新增的元素,可使用JavaScript脚本来绘制图形.例如:画图,合成照片,创建动画甚至实时视频处理与渲染. 兼容性方面,除了一些骨灰级浏览器IE6.IE ...

  5. [mobile开发碎碎念]手机页面上显示PDF文件

    demo:http://mozilla.github.io/pdf.js/web/viewer.html 项目地址:https://github.com/mozilla/pdf.js <scri ...

  6. 纯js实现html转pdf

    项目开发中遇到了一个变态需求,需要把一整个页面导出为pdf格式,而且要保留页面上的所有的表格.svg图片和样式.简而言之,就是希望像截图一样,把整个页面截下来,然后保存成pdf.咋不上天呢--查了一下 ...

  7. vue2.0全局组件之pdf

    目的:像elementUI那样注册全局组件 预览pdf文件 技术支持:使用火狐的pdf.js http://mozilla.github.io/pdf.js/ 准备:新建一个CPdf.vue文件,把火 ...

  8. pdf.js实现在HTML下直接浏览pdf文档,无需插件即可实现

    近期,有一个朋友做B端,服务器存了大量的金融类数据,很多都是pdf文档,他现在的做法是,先将pdf文档转换成flash,再放到浏览器上给用户浏览,但是他告诉我,这种体验太差了,而且很好资源,空间已经快 ...

  9. pdfjs预览pdf文件的两种方式(可复制)

    1.以图片形式进行展示: version:采用1.x版本,2.0版本会有字体显示不完整的问题:参考 这里使用1.8.170 <script th:src="@{/pdfjs/build ...

随机推荐

  1. git add 所有文件

    git add 多个文件的格式介绍 git提交修改之前要add然后commit,假如我用git clone远程服务器文件到本地,然后我如果修改了其中几个文件要提交,我必须一个个的如: $git add ...

  2. [django]drf知识点梳理-分页

    msyql分页 limit offset https://www.cnblogs.com/iiiiiher/articles/8846194.html django自己实现分页 https://www ...

  3. IOP开发数据库--20180105整理

    http://10.110.22.12/cloud-web/#/login/tenant 数据库 代理节点  10.110.22.12      数据库  10.110.22.12    dev/ro ...

  4. 日期条控件 DateFieldControl

    日期条控件 书:163 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns ...

  5. 实验源码,DES,AES,RSA,椭圆曲线

    https://pan.baidu.com/s/1CPA-bnLmcJR_AFsNImhUjQ

  6. 关于随机数、方法重载和System.out.println()的认识

    (1)使用纯随机数发生器编写一个指定数目内数字的程序(类真随机数) 源代码: package Demo1; public class trueRandom { long Multiplier = 45 ...

  7. 移动端的rem适配

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. javaweb之验证码验证技术

    今天学习了一个验证码校验技术,所以就写下了一些笔记,方便日后查看.首先创建web工程 1.然后在src目录下创建一个Servlet类,此类用来显示登录页面和错误信息提示 package com.LHB ...

  9. java字符串转换总结

    1.byte[]转String String str = new String(strByte); 2.String转byte[] byte[] byteArr = str.getBytes(); 3 ...

  10. 爬取笔下wenxue小说

    import urllib.request from bs4 import BeautifulSoup import re def gethtml(url): page=urllib.request. ...