工作需要,要往後臺添加數據,我又太懶,不想一個一個點,所以寫了一個自動提交工具,使用selenium+爬蟲做的一個小工具。懶是我進步的階梯。
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
import time
import random
class Utils(object):
def __init__(self):
self.driver_path = r'D:\BaiduNetdiskDownload\geckodriver.exe'
# 初始化一個driver,並且指定Firefox的路徑
self.driver = webdriver.Firefox(executable_path=self.driver_path)
def getPage_and_Login(self):
# 請求網頁
self.driver.get("***************")
# 通過page_source獲取網頁源代碼
# 顯示等待,當獲取到指定元素後就繼續
WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'loginbtn')))
# 登錄
self.driver.find_element_by_xpath('//input[@name="username"]').send_keys('******')
self.driver.find_element_by_xpath('//input[@name="password"]').send_keys('*******')
self.driver.find_element_by_xpath('//input[@type="submit"]').click()
def addContent(self):
# 點擊古詩添加button
self.driver.find_element_by_xpath('//dl[@class="leftmenu"]//dd[2]').click()
self.driver.find_element_by_xpath('//dl[@class="leftmenu"]//dd[2]//ul//li[1]').click()
# 等待3秒,等待iframe加載出來。
time.sleep(3)
# 切換到iframe標籤,可以按照index,id,name切換。https://www.cnblogs.com/sunTin/p/7800246.html
self.driver.switch_to.frame(0)
# 點擊添加按鈕
self.driver.find_element_by_xpath(
'/html/body/div[2]/div/div/div/div[1]/a[1]/span/span[1]').click()
# 添加標題
self.driver.find_element_by_xpath('//*[@id="id_title"]').send_keys('****')
# 添加內容
self.driver.find_element_by_xpath('/html/body/div[9]/div[2]/form/table/tbody/tr[2]/td/span/textarea').send_keys(
'****')
# 添加註釋
self.driver.find_element_by_xpath('/html/body/div[9]/div[2]/form/table/tbody/tr[4]/td/span/textarea').send_keys(
'****')
# 添加翻譯
self.driver.find_element_by_xpath('/html/body/div[9]/div[2]/form/table/tbody/tr[5]/td/span/textarea').send_keys(
'****')
# 添加賞析
self.driver.find_element_by_xpath('/html/body/div[9]/div[2]/form/table/tbody/tr[6]/td/span/textarea').send_keys(
'****')
# 添加音頻
self.driver.find_element_by_name('sound').send_keys('路徑')
# 添加作者,下拉框選擇
author_selectTag = Select(self.driver.find_element_by_id("id_author"))
author_selectTag.select_by_index(1)
# 添加年齡
self.driver.find_element_by_xpath('//input[@id="id_facility"]').send_keys(10)
# 添加排序
self.driver.find_element_by_xpath('//input[@id="id_ordering"]').send_keys(random.randint(30, 40))
# 添加類型,下拉框選擇
type_selectTag = Select(self.driver.find_element_by_id("id_volume"))
type_selectTag.select_by_index(1)
# 添加歌詞
self.driver.find_element_by_name('lyric').send_keys('路徑')
# 是否上下架,checkbox選擇
rememberTag = self.driver.find_element_by_id("id_is_up")
rememberTag.click()
# time.sleep(10)
# driver.close() # :關閉當前頁面。關閉一個選項卡
# driver.quit() # :退出整個瀏覽器。 關閉瀏覽器
if __name__ == '__main__':
obj = Utils()
obj.getPage_and_Login()
obj.addContent()