为了自动化获取一些网页数据:
通过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)