使用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()



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