• selenium


    from selenium import webdriver
    from selenium.webdriver import ChromeOptions
    from time import sleep
    from PIL import Image
    import requests
    
    
    class Get_ahth():
    
        """
        将验证码图片下到本地
        """
        def __init__(self):
            self.option = ChromeOptions()
            self.option.add_experimental_option('excludeSwitches', ['enable-automation'])
            self.bro = webdriver.Chrome(executable_path=r'D:chromedriver', chrome_options=self.option)
            self.bro.maximize_window()
            self.url='http://www.cn200.cc/member/my.php?mid=5&action=add'
    
        def get_img_all(self):
            bro = self.bro
            bro.get(self.url)
            js = "var q=document.documentElement.scrollTop=10000"
            bro.execute_script(js)
            bro.find_elements_by_id('answer')[0].click()
            bro.find_elements_by_id('captcha')[0].click()
            sleep(5)
            bro.save_screenshot(r'photo.png')  # 一次截图:形成全图
    
        def get_img_num(self):
            bro = self.bro
            img_yz_2 = bro.find_elements_by_id('question')[0]
    
            left_2 = img_yz_2.location['x']  # 区块截图左上角在网页中的x坐标
            top_2 = 778  # 区块截图左上角在网页中的y坐标
            right_2 = left_2 + img_yz_2.size['width'] - 65  # 区块截图右下角在网页中的x坐标
            bottom_2 = top_2 + img_yz_2.size['height'] + 14  # 区块截图右下角在网页中的y坐标
            print({"left": left_2, "top": top_2, "right": right_2, "bottom ": bottom_2})
            picture = Image.open(r'photo.png')
            picture = picture.crop((left_2, top_2, right_2, bottom_2))  # 二次截图:形成区块截图
            picture.save(r'photo3.png')
    
        def get_img_img(self):
            bro = self.bro
            img_yz = bro.find_elements_by_id('captchapng')[0]
            left = img_yz.location['x']  # 区块截图左上角在网页中的x坐标
            top = 835  # 区块截图左上角在网页中的y坐标
            right = left + img_yz.size['width']  # 区块截图右下角在网页中的x坐标
            bottom = top + img_yz.size['height'] + 14  # 区块截图右下角在网页中的y坐标
            print({"left": left, "top": top, "right": right, "bottom ": bottom})
            picture = Image.open(r'photo.png')
            picture = picture.crop((left, top, right, bottom))  # 二次截图:形成区块截图
            picture.save(r'photo2.png')
    
        def close(self):
            self.bro.quit()
    
        def main(self):
            self.get_img_all()
            self.get_img_num()
            self.get_img_img()
            self.close()
    
    gg = Get_ahth()
    gg.main()
  • 相关阅读:
    Java比较两个对象的不同之处
    windows下MongoDB的安装及配置
    springboot对应的springcloud版本
    Spring注解 @Scope 详解
    https HttpUtils 绕过证书
    thymeleaf 基本使用
    java8 groupby 对多个字段进行去重, 统计 partitioningBy
    linux硬件数据
    Nginx referer防盗链模块
    Nginx HTTP 过滤addition模块(响应前后追加数据)
  • 原文地址:https://www.cnblogs.com/konghui/p/11579043.html
Copyright © 2020-2023  润新知