+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-03(69)

2020-04(60)

2020-05(24)

2020-06(39)

2020-07(23)

pyautogui + win32gui + python 进行自动化操作示例

发布于2020-05-13 09:02     阅读(637)     评论(0)     点赞(9)     收藏(4)


0

1

2

3

4

为了自动化获取一些网页数据:

通过pyautogui操作谷歌浏览器,并获取打开页面的源代码(数据)

import re
import pyautogui
import win32gui
from pywinauto.application import Application
import os
import time
import win32api
from win32gui import *


def get_result():
    '''
    获取所有活动窗口的标题
    :return:
    '''
    result = set()

    def foo(hwnd, result):
        if IsWindow(hwnd) and IsWindowEnabled(hwnd) and IsWindowVisible(hwnd):
            result.add(GetWindowText(hwnd))

    EnumWindows(foo, result)
    lt = [t for t in result if t]
    lt.sort()
    return lt


def save_data(titles):
    '''
    保存数据到本地文件
    :param titles:
    :return:
    '''
    for i in titles:
        if '新标签页 - Google Chrome' in i:
            # 打开登录主页
            pyautogui.press('shiftleft')
            pyautogui.typewrite(message='https://login.taobao.com/member/login.jhtml', interval=0.1)
            pyautogui.press('enter')

            time.sleep(2)

            # 新增标签页
            pyautogui.hotkey('ctrl', 't')

            # 打开登录页源代码
            pyautogui.typewrite(message='view-source:https://login.taobao.com/member/login.jhtml', interval=0.1)
            pyautogui.press('enter')

            time.sleep(2)

            # 移动到空白处点击
            pyautogui.moveTo(1150, 460)
            pyautogui.click()

            # 全选复制代码
            pyautogui.hotkey('ctrl', 'a')
            pyautogui.hotkey('ctrl', 'c')
            time.sleep(2)

            # 打开桌面要存放的文件
            win32api.ShellExecute(1, 'open',
                                  r'C:\\Soft\\taskscheduling\\mange_chrome\\tm_login.txt',
                                  '', '', 1)
            time.sleep(2)
            # 全选删除原始数据
            pyautogui.hotkey('ctrl', 'a')
            pyautogui.press('delete')

            # 复制并保存
            pyautogui.hotkey('ctrl', 'v')
            pyautogui.hotkey('ctrl', 's')

            time.sleep(2)
            pyautogui.close()

def close_window(titles):
    '''
    关闭任务的窗口
    :param titles:
    :return:
    '''
    for i in titles:
        print(i)
        #********************************
        # 判断需要关闭的窗口名称进行以下关闭操作
        #*******************************        

        # # 获取窗口句柄
        # data = win32gui.FindWindow(None, i)

        # # 连接已有弹窗
        # app = Application().connect(handle=data)
        # # 关闭弹窗
        # ftptool = app.window_(found_index=0).close()



if __name__ == '__main__':
    # 打开谷歌浏览器
    win32api.ShellExecute(1, 'open',
                          r'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe',
                          '', '', 1)
    time.sleep(3)

    # 获取所有活动窗口的标题
    titles = get_result()

    # 复制登录页面数据到文件中
    save_data(titles)

    # 再次获取当前活动窗口的标题并关闭任务的窗口
    titles = get_result()
    close_window(titles)

 

0

1

2

3

4

5



所属网站分类: 技术文章 > 博客

作者:9384vfnv

链接: https://www.pythonheidong.com/blog/article/368705/24234d0f81156062778b/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

9 0
收藏该文
已收藏

评论内容:(最多支持255个字符)