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()

原文地址:https://www.cnblogs.com/konghui/p/11579043.html

时间: 2024-10-05 10:06:18

selenium - 截图下载图片的相关文章

selenium 右键下载图片,结合sikuli

上一次写右键下载是结合robot,这次是使用selenium+sikuli 上一次日志:http://www.cnblogs.com/tobecrazy/p/3969390.html 有关sikuli的介绍,和简单使用请参考:http://www.cnblogs.com/tobecrazy/p/4516369.html 关于sikuli的缺点: 1.运行脚本时候,必须截图,图片比较占用系统空间 2.脚本执行过程中,不能移动鼠标,而selenium可以最小化,任意移动鼠标 话不多说,介绍一下场景:

selenium爬取优酷页面并下载图片

1 from selenium import webdriver 2 import requests 3 driver = webdriver.Chrome() 4 #打开优酷 5 driver.get("http://www.youku.com") 6 #点开优酷片库 7 driver.find_element_by_xpath("//*[@id='m_2544']/div/ul/li[6]/span[1]/a").click() 8 #获取所有img元素 9 l

node与canvas保存(下载)图片

最近在做一个截图的功能,要保存成图片. 其实这个功能挺简单的,用toDataURL()转换,或者直接用使用canvas2image.js, base64.js这两个脚本实现功能, 部分重要代码如下:                     //简单的使用JavaScript代码实现下载     var imageDate = document.getElementById("canvas").toDataURL("image/png");     window.lo

Android开发之异步获取并下载网络资源-下载图片和下载文本内容

在android网络开发过程中,经常需要获取网络资源,比如下载图片,下载文本文件内容等,这个时候就需要http请求来获取相应的网络资源.首先看看实例效果图:              下载图片截图                                                                                                下载文本文件内容截图 下面介绍如何来实现这样的开发: (1)从指定的URL获取对应的流 既然要获取网络资源,那么

用python批量下载图片

一 写爬虫注意事项 网络上有不少有用的资源, 如果需要合理的用爬虫去爬取资源是合法的,但是注意不要越界,前一阶段有个公司因为一个程序员写了个爬虫,导致公司200多个人被抓,所以先进入正题之前了解下什么样的爬虫是违法的: 如果爬虫程序采集到公民的姓名.身份证件号码.通信通讯联系方式.住址.账号密码.财产状况.行踪轨迹等个人信息,并将之用于非法途径的,则肯定构成非法获取公民个人信息的违法行为.除此之外,根据相关规定,对于违反国家有关规定,向他人出售或者提供公民个人信息,情节严重的,窃取或者以其他方法

我的第一个python爬虫程序(从百度贴吧自动下载图片)

这个学期开设了编译原理和形式语言与自动机,里面都有介绍过正则表达式,今天自己学了学用python正则表达式写爬虫 一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛. 网络蜘蛛是通过网页的链接地址来寻找网页的. 从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址, 然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止. 如果把整个互联网当成

一个失误导致微信下载图片接口Token失效

公司的应用调了一个微信上传下载图片的接口,本来在线上跑的好好的,什么问题没有,但是这两天总是不定时的出现下载下来的图片损坏,拿着Token和serverid去接口测试网页验证,返回的是Token失效了,返回信息:"errcode": 40001, "errmsg": "invalid credential, access_token is invalid or not latest hint: [17ZG50664ent3].我是把Token和ticket

利用Node 搭配uglify-js压缩js文件,批量下载图片到本地

Node的便民技巧-- 压缩代码 下载图片 压缩代码 相信很多前端的同学都会在上线前压缩JS代码,现在的Gulp Webpack Grunt......都能轻松实现.但问题来了,这些都不会,难道就要面对几十个JS文件一遍遍来回“复制-压缩-创建-粘贴”,这样太不人性化了. 于是可以借助Node + uglify-js 轻松实现.(前提你会点node操作) 1.首先看一下目录: |--uglifyJS |--js |--test1.js |--test2.js |--uglify.js   //这

【iOS开发之旅】AFNetworking与SDWebImage下载图片

AFNetworking与SDWebImage下载图片 // // ViewController.m // AFNetworkingDemo // // Created by ChenQianPing on 16/1/31. // Copyright © 2016年 chenqp. All rights reserved. // #import "ViewController.h" #import "AFNetworking.h" #import "UII