使用seleninum实现清单自动下载Demo

此文仅作清单下载Demo,完整的代码还有清单表格数据处理、数据上传数据库、成功或异常简报的邮件发送、日志记录…

#coding:utf-8

# 公用库
import os
import time
import datetime
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )

# selenium操作库
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from scrapy.selector import Selector
import random

# Excel表格操作库
import xlrd
import xlwt
import re
from xlrd import open_workbook
from xlutils.copy import copy
import MySQLdb
from sqlOpera import sqlOpera

# 邮箱邮件发送
from fileHand import DataUpload

# 日志记录
from logRerd import logs
logs=logs()

logs.addLogs("打开浏览器",0)

class TableDown(object):
    def selm(self):
        try:
            # 打开浏览器
            browser = webdriver.Chrome()
            # 打开窗口
            browser.get('http://pub.alimama.com/')
            ps="******"
            sj="******"
            browser.implicitly_wait(20)
            logs.addLogs("切入登陆页",0)
            browser.switch_to.frame("taobaoLoginIfr")
            browser.find_element_by_xpath("//i[@id='J_Quick2Static']").click()
            browser.find_element_by_xpath("//input[@id='TPL_username_1']").send_keys(sj)
            time.sleep(random.randint(2,5))
            browser.find_element_by_xpath("//input[@id='TPL_password_1']").send_keys(ps)
            time.sleep(random.randint(1,5))
            # 点击登陆
            browser.find_element_by_xpath("//button[@id='J_SubmitStatic']").click()
            # 切回当前
            # browser.switch_to.default_content()
            time.sleep(6)
            logs.addLogs("进入联盟",0)
            # 进入联盟
            browser.find_element_by_xpath("//div[@class='right-logined']/a[@href='/myunion.htm']").click()
            time.sleep(random.randint(2,5))
            # 关闭SDK提醒
            browser.find_element_by_xpath("//span[@class='dialog-ext-close-x']").click()
            # 知道了
            time.sleep(1)
            browser.find_element_by_xpath("//span[@class='close-btn']").click()
            # 点击左侧联盟产品
            browser.find_element_by_xpath("//a[@href='#!/promo/self/items']").click()
            time.sleep(3)
            logs.addLogs("切入下载页面", 0)
            browser.find_element_by_xpath("//div[@mx-click='downItem']/div[@class='list-down-area']").click()
            time.sleep(3)
            logs.addLogs("选择下来条件",0)
            browser.find_element_by_xpath("//input[@mx-click='promoType{type:web}']").click()
            # 选择推广位
            browser.find_element_by_xpath("//input[@mx-click='zoneType{type:1}']").click()
            time.sleep(1)
            # 点击推广位名称下拉框
            browser.find_element_by_xpath("//div[@id='J_zones_dropdown']").click()
            time.sleep(1)
            # 选择推广位名称下
            browser.find_element_by_xpath("//span[@value='129958759']").click()
            time.sleep(1)
            # 确定下载
            browser.find_element_by_xpath("//button[@mx-click='submit']").click()
            logs.addLogs("开始下载", 0)
            time.sleep(5)
            logs.addLogs("监控下载进度", 0)
            # browser.get("chrome://downloads/")
        except Exception,e:
            # print e
            logs.addLogs("表单下载异常",9)
        finally:
            pass
        # 判断现在完成状态,执行表单处理并上传
        now = datetime.datetime.now()
        dateNow = now.strftime('%Y-%m-%d')
        fileUrl = u'C:*********' + dateNow + '.xls'
        stateTf = False
        stateTfs=True
        startDown=time.time()
        while not stateTf:
            stateTf = os.path.exists(fileUrl)
            time.sleep(15)
            alTime=time.time() - startDown
            if alTime>500:
                stateTf=False
                stateTfs=False
            else:
                logs.addLogs("已用时-" + str(time.time() - startDown),0)


        if stateTfs:
            logs.addLogs("下载用时--"+str(time.time()-startDown),0)
            DataUpload().fileReads(fileUrl)
        else:
            # sendEmail().sdEmail("失败")
            logs.addLogs("下载失败",9)


 # 执行表单下载
# TableDown.selm()



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章