From c142afe34289962246c8c5c3cd8da1fbd5cd43dc Mon Sep 17 00:00:00 2001 From: Kane Wang Date: Tue, 10 Dec 2019 19:06:05 +0800 Subject: [PATCH] ... --- .../RepairOrderScrap/RepairOrderScrap.py | 188 +++++++++--------- .../车商可视化数据管理系统.sln | 28 --- 2 files changed, 98 insertions(+), 118 deletions(-) diff --git a/代码/python/车商渠道数据采集/RepairOrderScrap/RepairOrderScrap.py b/代码/python/车商渠道数据采集/RepairOrderScrap/RepairOrderScrap.py index a886c1b..ba7675e 100644 --- a/代码/python/车商渠道数据采集/RepairOrderScrap/RepairOrderScrap.py +++ b/代码/python/车商渠道数据采集/RepairOrderScrap/RepairOrderScrap.py @@ -40,114 +40,122 @@ def WaitForLogin( wbDriver, tagID ): except NoSuchElementException: return -#打开driver,登录网页 -try: - wb_ie = webdriver.Ie(executable_path='D:/develop/sdk/python/Selenium/ie_driver/IEDriverServer.exe') - wb_ie.get('http://10.190.48.74:8601/login.jsp') -except: - print('打开driver和网页时出错!') - exit(-1) +def GetSessionID(webDriver): + try: + cookies = dict( webDriver.get_cookies()[0] ) + return cookies['name'] + '=' + cookies['value'] + except: + return None -action = ActionChains(wb_ie) -bs = BeautifulSoup( wb_ie.page_source, 'html.parser') -names = bs.find_all("img", {'id':'captcha'}) +def ScrapRepairOrderData(): + #打开driver,登录网页 + try: + wb_ie = webdriver.Ie(executable_path='D:/develop/sdk/python/Selenium/ie_driver/IEDriverServer.exe') + wb_ie.get('http://10.190.48.74:8601/login.jsp') + except: + print('打开driver和网页时出错!') + exit(-1) -#填写登录信息 -try: - captcha = wb_ie.find_element_by_id('captcha') - branchCode = wb_ie.find_element_by_id('branchCode') - userCode = wb_ie.find_element_by_id('userCode') - password = wb_ie.find_element_by_id('password') + action = ActionChains(wb_ie) + bs = BeautifulSoup( wb_ie.page_source, 'html.parser') + names = bs.find_all("img", {'id':'captcha'}) - branchCode.send_keys('3080100') - userCode.send_keys('588') - password.send_keys('Kane@1982') -except NoSuchElementException: - print('获取登录页面元素失败!') - wb_ie.close() - exit(-1) + #填写登录信息 + try: + captcha = wb_ie.find_element_by_id('captcha') + branchCode = wb_ie.find_element_by_id('branchCode') + userCode = wb_ie.find_element_by_id('userCode') + password = wb_ie.find_element_by_id('password') -try: - WaitForLogin( wb_ie, 'captcha') -except NoSuchElementException: - print('浏览器异常关闭!') - exit() + #登录的循环,没错误时才继续。 + while True: + try: + branchCode.clear() + userCode.clear() + password.clear() -#输出cookie -try: - cookies = wb_ie.get_cookies() - - cookie_dict = dict(cookies[0]) + branchCode.send_keys('3080100') + userCode.send_keys('588') + password.send_keys('Kane@1982') - print( cookie_dict['name'] + '=' + cookie_dict['value'] ) -except: - wb_ie.close() - exit() + WaitForLogin( wb_ie, 'captcha') + except Exception as e: + print(e) + else: + break + except NoSuchElementException: + print('获取登录页面元素失败!') + wb_ie.close() + exit(-1) -try: - #点击统计查询 - element = wb_ie.find_element_by_xpath("//*[text()='统计查询']") - action.move_to_element_with_offset(element, 1, 1 ).perform() - #time.sleep(1) - action.context_click(element).perform() - action.click(element) - action.perform() + #输出cookie + sessionID = GetSessionID( wb_ie ) - #点击送返修工单查询 - element = wb_ie.find_element_by_xpath("//*[text()='送返修工单查询']") + try: + #点击统计查询 + element = wb_ie.find_element_by_xpath("//*[text()='统计查询']") - action.move_to_element_with_offset(element, 1, 1 ).perform() - #time.sleep(1) - action.context_click(element).perform() - action.click(element) - action.perform() + action.move_to_element_with_offset(element, 1, 1 ).perform() + #time.sleep(1) + action.context_click(element).perform() + action.click(element) + action.perform() - #time.sleep(1) + #点击送返修工单查询 + element = wb_ie.find_element_by_xpath("//*[text()='送返修工单查询']") - #切换iframe tabset_workOrderQuery - wb_ie.switch_to.frame('tabset_workOrderQuery') + action.move_to_element_with_offset(element, 1, 1 ).perform() + #time.sleep(1) + action.context_click(element).perform() + action.click(element) + action.perform() - #按钮 - queryButton = wb_ie.find_element_by_xpath("//*[text()='查询']") + #time.sleep(1) - #日期元素 - startDateElement = wb_ie.find_element_by_id('createStartDate') - endDateElement = wb_ie.find_element_by_id('createEndDate') + #切换iframe tabset_workOrderQuery + wb_ie.switch_to.frame('tabset_workOrderQuery') + + #按钮 + queryButton = wb_ie.find_element_by_xpath("//*[text()='查询']") + + #日期元素 + startDateElement = wb_ie.find_element_by_id('createStartDate') + endDateElement = wb_ie.find_element_by_id('createEndDate') - #开始查询和抓取循环 + #开始查询和抓取循环 + while True: + #填写起始日期和终止日期 + startDateElement.clear() + endDateElement.clear() + + startDateElement.send_keys('2019-11-10') + endDateElement.send_keys('2019-12-10') + + #查询 + action.move_to_element_with_offset( queryButton, 2, 2 ).perform() + action.click(queryButton).perform() + + #查询后等待一段时间 + #time.sleep(2) + except NoSuchElementException: + print('查找不到元素') + exit(-1) + except: + print('页面读取错误') + exit(-1) + finally: + #wb_ie.close() + None + while True: - #填写起始日期和终止日期 - startDateElement.clear() - endDateElement.clear() - - startDateElement.send_keys('2019-11-10') - endDateElement.send_keys('2019-12-10') - - #查询 - action.move_to_element_with_offset( queryButton, 2, 2 ).perform() - action.click(queryButton).perform() - - #查询后等待一段时间 - #time.sleep(2) - -except NoSuchElementException: - print('查找不到元素') - exit(-1) -except: - print('页面读取错误') - exit(-1) -finally: - #wb_ie.close() - None + time.sleep(1) + print('已登录!!!') - - -while True: - time.sleep(1) - print('已登录!!!') - +#测试代码 +if __name__ == '__main__': + ScrapRepairOrderData() diff --git a/代码/车商可视化数据管理系统/车商可视化数据管理系统.sln b/代码/车商可视化数据管理系统/车商可视化数据管理系统.sln index 287023f..852641e 100644 --- a/代码/车商可视化数据管理系统/车商可视化数据管理系统.sln +++ b/代码/车商可视化数据管理系统/车商可视化数据管理系统.sln @@ -3,8 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.29519.181 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "车商可视化数据管理系统", "车商可视化数据管理系统\车商可视化数据管理系统.vcxproj", "{DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}" -EndProject Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "车商渠道数据采集", "..\python\车商渠道数据采集\车商渠道数据采集.pyproj", "{81F2541E-C96A-4C05-B3F5-643B25E708D5}" EndProject Global @@ -21,32 +19,6 @@ Global Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Debug|Any CPU.ActiveCfg = Debug|x86 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Debug|ARM.ActiveCfg = Debug|ARM - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Debug|ARM.Build.0 = Debug|ARM - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Debug|ARM.Deploy.0 = Debug|ARM - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Debug|ARM64.Build.0 = Debug|ARM64 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Debug|ARM64.Deploy.0 = Debug|ARM64 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Debug|x64.ActiveCfg = Debug|x64 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Debug|x64.Build.0 = Debug|x64 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Debug|x64.Deploy.0 = Debug|x64 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Debug|x86.ActiveCfg = Debug|x86 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Debug|x86.Build.0 = Debug|x86 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Debug|x86.Deploy.0 = Debug|x86 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Release|Any CPU.ActiveCfg = Release|x86 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Release|ARM.ActiveCfg = Release|ARM - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Release|ARM.Build.0 = Release|ARM - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Release|ARM.Deploy.0 = Release|ARM - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Release|ARM64.ActiveCfg = Release|ARM64 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Release|ARM64.Build.0 = Release|ARM64 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Release|ARM64.Deploy.0 = Release|ARM64 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Release|x64.ActiveCfg = Release|x64 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Release|x64.Build.0 = Release|x64 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Release|x64.Deploy.0 = Release|x64 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Release|x86.ActiveCfg = Release|x86 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Release|x86.Build.0 = Release|x86 - {DFAB7824-DB3C-4114-AFE8-6DBD2892C07E}.Release|x86.Deploy.0 = Release|x86 {81F2541E-C96A-4C05-B3F5-643B25E708D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {81F2541E-C96A-4C05-B3F5-643B25E708D5}.Debug|ARM.ActiveCfg = Debug|Any CPU {81F2541E-C96A-4C05-B3F5-643B25E708D5}.Debug|ARM64.ActiveCfg = Debug|Any CPU