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

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

通过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)

 

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值