大赵传奇

援引事类,扬搉古今,举要删芜,言辩而理切--QQ276605216

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

首先尝试这么用:

#     fulljs = """
#         () => { return document.getElementsByClassName("geetest_canvas_fullbg")[0].toDataURL("image/png") }
#         """
#     fadejs = """
#         () => { 
#                 return document.getElementsByClassName("geetest_canvas_bg geetest_absolute")[0].toDataURL("image/png")}
#         """

会有异常 ailed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported

TypeError: document.getElementsByClassName(...)[0].toDataURL is not a function

看这一篇

https://www.cnblogs.com/Renyi-Fan/p/9588755.html

 

# -*- coding: utf-8 -*-
import base64
import os
import sys
import json
import asyncio
import time
import numpy as np
import cv2
from pyppeteer import launch
from PIL import Image, ImageChops
import matplotlib.pyplot as plt


async def main():
    browser = await launch(headless=False,autoClose=False, args=['--disable-infobars'])
    captcha_url = 'http://search.fang.com/captcha-40a1371b84c30293be/?t=1620803648.855&h=aHR0cHM6Ly9lc2YuZmFuZy5jb20vaG91c2UvaTMxNT9yZnNzPTItM2ExZjhlMDU0ZmJhMDE5MTQ5LTBi&c=cmE6MTEyLjEyLjE2LjIyO3hyaTo7eGZmOg%3D%3D#'
    
    page1 = await browser.newPage()
    await page1.goto(url=captcha_url)


    dimensions = await page1.evaluate(pageFunction='''() => {
        var canvas=document.createElement("canvas"),//获取canvas
            ctx = canvas.getContext("2d"), //对应的CanvasRenderingContext2D对象(画笔)
            img = new Image(),//创建新的图片对象
            base64 = '' ;//base64 
        img.src = document.getElementsByClassName("img-block")[0].src;
        img.setAttribute("crossOrigin",'Anonymous');
        img.onload = function(){//图片加载完,再draw 和 toDataURL
            ctx.drawImage(img,0,0);    
            base64 = canvas.toDataURL("image/png"); 
        };
        var dataURL=canvas.toDataURL("image/png");
        return {aa:dataURL}
        }''', force_expr=False)  # force_expr=False  执行的是函数
    print(dimensions)


 
if __name__ == '__main__':
    asyncio.get_event_loop().run_until_complete(main())

 

posted on 2021-11-19 12:52  赵长青  阅读(303)  评论(0编辑  收藏  举报