Go語言開發分佈式任務調度 輕鬆搞定高性能Crontab

download:Go語言開發分佈式任務調度 輕鬆搞定高性能Crontab

Golang因其強大的協程機制,現已普遍應用於解決分佈式環境下的高併發問題。本門課程中將結合Etcd與MongoDB實現一個基於Master-Worker分佈式架構的任務調度系統。你不只將掌握Golang的工程實踐能力,並且會收穫諸如CAP、Raft的分佈式經典理論與架構經驗,」工程能力」與」知識體系」齊頭並進,實現華麗質變。html

適合人羣
但願轉型Go語言開發的同窗
須要提高Go語言的開發經驗的同窗python

技術儲備要求
熟悉Go語言基礎語法,具有必定開發經驗更佳
瞭解Linux Shell、Github、MySQL的簡單用法
import time
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import Byweb

啓動Chromedriver,並與Chromedriver開啓會話

driver = webdriver.Chrome()
driver.maximize_window()
driver.get("http://www.baidu.com")架構

第一步:實例化ActionChains

ac = ActionChains(driver)併發

第二步:定位要操做的元素

ele = driver.find_element_by_xpath('//span[@id="s-usersetting-top"]')app

第三步:執行對應的操做

ac.move_to_element(ele) # 懸浮操做分佈式

第四步,釋放鼠標動做

ac.perform()ide

點擊懸停出來的頁面上的元素

wait = WebDriverWait(driver, 10)
loc = (By.XPATH, '//a[@class="setpref"]')
wait.until(EC.visibility_of_element_located(loc))
driver.find_element(*loc).click()
time.sleep(2)
driver.quit()
def move_to():
print("正在挪動")
def click():
print('點擊')
actions = []
actions.append(move_to)
actions.append(click)
for action in actions: # perform高併發

action = move_to

action()

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys性能

啓動Chromedriver,並與Chromedriver開啓會話

driver = webdriver.Chrome()
driver.maximize_window()
driver.get("http://www.baidu.com")
driver.find_element_by_id('kw').send_keys("selenium") # 沒有點擊百度一下也沒有回車不會呈現搜索結果
time.sleep(2)
driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'a') # 全選而後輸入新內容python
driver.find_element_by_id('kw').send_keys('python', Keys.ENTER) # 用回車替代點擊搜索按鈕
time.sleep(2)

driver.find_element_by_id('kw').send_keys('python') # 也可以單獨先輸內容

driver.find_element_by_id('kw').send_keys(Keys.ENTER) # 再回車

time.sleep(2)
driver.quit()
<html>
<head>
<meta charset="UTF-8">
<title>下拉框演示</title>
</head>
<body>
<select id="province">
<option value="sj">深圳</option>
<option value="gd">廣東</option>
<option value="sh">上海</option>
<option value="bj">北京</option>
</select>
<select id="city">
<option value="sj">深圳</option>
<option value="gz">廣州</option>
<option value="sh">上海</option>
<option value="bj">北京</option>
</select>
</body>
</html>
​ 演示代碼以下:

import time
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support.ui import Select

啓動Chromedriver,並與Chromedriver開啓會話

driver = webdriver.Chrome()
driver.maximize_window()
driver.get(r"D:\learn\test.html")
wait = WebDriverWait(driver, 10)

找到select元素

ele = driver.find_element_by_id('province')

實例化Select類

s = Select(ele)
time.sleep(1)
s.select_by_value('gd') # 通過value屬性選值
time.sleep(2)
s.select_by_index(2) # 通過下標index選值
time.sleep(2)
s.select_by_visible_text('北京') # 通過文本內容選值
time.sleep(2)
driver.quit()
import time
import datetime
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

啓動Chromedriver,並與Chromedriver開啓會話

driver = webdriver.Chrome()

driver.maximize_window()

driver.get("https://www.12306.cn/")
wait = WebDriverWait(driver, 30)
loc = (By.XPATH, '//input[@id="train_date"]')
wait.until(EC.visibility_of_element_located(loc))
js = 'document.getElementById("train_date").readOnly=false;'
driver.execute_script(js)
time.sleep(2)

清空日曆,從新輸入日期

driver.find_element(*loc).clear()today = datetime.date.today()tomorrow = today + datetime.timedelta(days=1)driver.find_element_by_id('train_date').send_keys(str(tomorrow))time.sleep(2)driver.quit()

相關文章
相關標籤/搜索