EC2)价格抓取demo
EC2)价格抓取demo
”’
#想使用select方法,但是代码里不是select表单元素,而是awsui-select元素,故放弃
select_2 = Select(dr.find_element_by_xpath(‘//*[@id=”e-c2next”]/div/div[2]/awsui-form/div/div[2]/span/span/div[2]/div/div/div[1]/div[2]/div/div[2]/span[3]/awsui-table/div/div[2]/div/div[2]/span/div/div[2]/div[1]/awsui-select’))
select_2.select_by_value(“2″)
print(‘已经选择了2’)
二:
# action2 = dr.find_element_by_xpath(‘//*[@id=”awsui-select-1″]/div/awsui-icon/span’)
# ActionChains(dr).move_to_element(action2).click(action2).perform() # 鼠标移动到某处单击 ,可用
三:
Advanced_estimate = getElement(dr,’xpath’,’//*[@id=”awsui-radio-button-1”]’)
dr.execute_script(“arguments[0].click();”, Advanced_estimate) #报错,提示按钮被覆盖了,百度搜到了这个方法,可用
”’
from time import sleep
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import Select
from selenium.webdriver import ActionChains #鼠标操作
def getElement(driver,localtorType,localtorExpression):
try:
element = WebDriverWait(driver,60,1).until(lambda x:x.find_element(by = localtorType,value=localtorExpression))
return element
except Exception as e:
driver.quit()
raise e
if __name__ == ‘__main__’:
dr = webdriver.Chrome()
url = ‘https://calculator.aws/#/createCalculator/EC2′ #后期可遍历
dr.maximize_window()
dr.get(url)
sleep(10) # 等loading页面消失
#选择高级模式
Advanced_estimate = getElement(dr,’xpath’,’//*[@id=”awsui-radio-button-1″]’)
Advanced_estimate.click()
# 选择模式 /windows&linux
#选择地域 从0-36个区域
for i in range(37):
region_list = getElement(dr,’xpath’,’//*[@id=”awsui-select-1″]/div/awsui-icon/span’)
region_list.click()
region_xpath = ‘//*[@id=”awsui-select-1-dropdown-option-%d”]/div/div/div/span’%i
region = dr.find_element_by_xpath(region_xpath)
print(‘地区为%s’%region.text)
select_region = getElement(dr,’xpath’,region_xpath)
select_region.click()
#选择change region
change_region = getElement(dr,’xpath’,’//*[@id=”e-c2next”]/div/div[2]/awsui-form/div/div[2]/span/span/awsui-modal/div[2]/div/div/div[3]/span/div/span[2]/awsui-button[2]/button/span/span’)
change_region.click()
sleep(8)
#选择vCPU
vCPU_list = getElement(dr,’xpath’,’//*[@id=”awsui-select-17″]/div/awsui-icon/span’)
vCPU_list.click()
select_2 = getElement(dr,’xpath’,’//*[@title=”4″]’)
select_2.click()
print(‘已经变成4了’)
# 选择memory
memory_list = getElement(dr, ‘xpath’, ‘//*[@id=”awsui-select-18″]/div/awsui-icon/span’)
memory_list.click()
select_4 = getElement(dr, ‘xpath’, ‘//*[@title=”16 GiB”]’)
select_4.click()
print(‘已经变成16了’)
#选择付款模式,先包月后按量
#包月
baoyue = getElement(dr, ‘xpath’, ‘//*[@id=”awsui-radio-button-9″]’)
baoyue.click()
sleep(2)
price = dr.find_element_by_xpath(‘//*[@id=”e-c2next”]/div/div[2]/awsui-form/div/div[2]/span/span/div[2]/div/div/div[2]/div[2]/div[1]/div[6]/div[2]/h4’)
print(‘包月价格为%s’%price.text)
#按量
anliang = getElement(dr, ‘xpath’, ‘//*[@id=”awsui-radio-button-10″]’)
anliang.click()
sleep(2)
price = dr.find_element_by_xpath(‘//*[@id=”e-c2next”]/div/div[2]/awsui-form/div/div[2]/span/span/div[2]/div/div/div[2]/div[2]/div[1]/div[6]/div[2]/h4’)
print(‘按量价格为%s’ % price.text)
#10.89 / 12.06
sleep(15)
dr.close()
window版本:
from time import sleep
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import Select
from selenium.webdriver import ActionChains #鼠标操作
def getElement(driver,localtorType,localtorExpression):
try:
element = WebDriverWait(driver,60,1).until(lambda x:x.find_element(by = localtorType,value=localtorExpression))
return element
except Exception as e:
driver.quit()
raise e
if __name__ == ‘__main__’:
dr = webdriver.Chrome()
url = ‘https://calculator.aws/#/createCalculator/EC2′ #后期可遍历
dr.maximize_window()
dr.get(url)
sleep(15) # 等loading页面消失
#选择高级模式
Advanced_estimate = getElement(dr,’xpath’,’//*[@id=”awsui-radio-button-1″]’)
Advanced_estimate.click()
# 选择模式 /windows&linux
select_mode = getElement(dr, ‘xpath’, ‘//*[@id=”awsui-select-5″]/div/awsui-icon/span’)
select_mode.click()
mode = getElement(dr, ‘xpath’, ‘//*[@title=”Windows Server”]’)
mode.click()
sleep(5)
#选择地域 从0-36个区域
for i in range(37):
region_list = getElement(dr,’xpath’,’//*[@id=”awsui-select-1″]/div/awsui-icon/span’)
region_list.click()
region_xpath = ‘//*[@id=”awsui-select-1-dropdown-option-%d”]/div/div/div/span’%i
region = dr.find_element_by_xpath(region_xpath)
print(‘地区为%s’%region.text)
select_region = getElement(dr,’xpath’,region_xpath)
select_region.click()
#选择change region
change_region = getElement(dr,’xpath’,’//*[@id=”e-c2next”]/div/div[2]/awsui-form/div/div[2]/span/span/awsui-modal/div[2]/div/div/div[3]/span/div/span[2]/awsui-button[2]/button/span/span’)
change_region.click()
sleep(10)
#选择vCPU
# vCPU_list = getElement(dr,’xpath’,’//*[@id=”awsui-select-42″]/div/awsui-icon/span’)
vCPU_list = getElement(dr,’xpath’,’//*[@class=”select-filter vcpu-filter”]’)
vCPU_list.click()
select_2 = getElement(dr,’xpath’,’//*[@title=”4″]’)
select_2.click()
print(‘已经变成4了’)
# 选择memory //*[@class=”select-filter memory-filter”]
# memory_list = getElement(dr, ‘xpath’, ‘//*[@id=”awsui-select-43″]/div/awsui-icon/span’)
memory_list = getElement(dr, ‘xpath’, ‘//*[@class=”select-filter memory-filter”]’)
memory_list.click()
select_4 = getElement(dr, ‘xpath’, ‘//*[@title=”16 GiB”]’)
select_4.click()
print(‘已经变成16了’)
#选择付款模式,先包月后按量
#包月
baoyue = getElement(dr, ‘xpath’, ‘//*[@id=”awsui-radio-button-9″]’)
baoyue.click()
sleep(2)
price = dr.find_element_by_xpath(‘//*[@id=”e-c2next”]/div/div[2]/awsui-form/div/div[2]/span/span/div[2]/div/div/div[2]/div[2]/div[1]/div[6]/div[2]/h4’)
print(‘包月价格为%s’%price.text)
#按量
anliang = getElement(dr, ‘xpath’, ‘//*[@id=”awsui-radio-button-10″]’)
anliang.click()
sleep(2)
price = dr.find_element_by_xpath(‘//*[@id=”e-c2next”]/div/div[2]/awsui-form/div/div[2]/span/span/div[2]/div/div/div[2]/div[2]/div[1]/div[6]/div[2]/h4’)
print(‘按量价格为%s’ % price.text)
#10.89 / 12.06
sleep(15)
dr.close()
Linux:
地区为Africa (Cape Town)
已经变成4了
已经变成16了
包月价格为14.19 USD
按量价格为16.01 USD
地区为Asia Pacific (Hong Kong)
已经变成4了
已经变成16了
包月价格为13.91 USD
按量价格为15.88 USD
地区为Asia Pacific (Tokyo)
已经变成4了
已经变成16了
包月价格为12.73 USD
按量价格为14.55 USD
地区为Asia Pacific (KDDI) – Tokyo
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为58.98 USD
地区为Asia Pacific (Seoul)
已经变成4了
已经变成16了
包月价格为32.33 USD
按量价格为47.37 USD
地区为Asia Pacific (SKT) – Daejeon
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为51.73 USD
地区为Asia Pacific (Osaka)
已经变成4了
已经变成16了
包月价格为34.63 USD
按量价格为49.30 USD
地区为Asia Pacific (Mumbai)
已经变成4了
已经变成16了
包月价格为30.00 USD
按量价格为42.11 USD
地区为Asia Pacific (Singapore)
已经变成4了
已经变成16了
包月价格为33.83 USD
按量价格为48.13 USD
地区为Asia Pacific (Sydney)
已经变成4了
已经变成16了
包月价格为34.50 USD
按量价格为48.73 USD
地区为Canada (Central)
已经变成4了
已经变成16了
包月价格为31.21 USD
按量价格为43.76 USD
地区为EU (Frankfurt)
已经变成4了
已经变成16了
包月价格为32.09 USD
按量价格为45.08 USD
地区为EU (Stockholm)
已经变成4了
已经变成16了
包月价格为28.68 USD
按量价格为40.36 USD
地区为EU (Milan)
已经变成4了
已经变成16了
包月价格为31.80 USD
按量价格为44.72 USD
地区为EU (Ireland)
已经变成4了
已经变成16了
包月价格为30.24 USD
按量价格为42.58 USD
地区为EU (London)
已经变成4了
已经变成16了
包月价格为31.51 USD
按量价格为44.29 USD
地区为EU (Paris)
已经变成4了
已经变成16了
包月价格为31.51 USD
按量价格为44.29 USD
地区为Middle East (Bahrain)
已经变成4了
已经变成16了
包月价格为33.29 USD
按量价格为46.87 USD
地区为South America (Sao Paulo)
已经变成4了
已经变成16了
包月价格为42.02 USD
按量价格为62.90 USD
地区为US East (N. Virginia)
已经变成4了
已经变成16了
包月价格为28.04 USD
按量价格为39.36 USD
地区为US East (Boston)
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为156.34 USD
地区为US East (Houston)
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为156.34 USD
地区为US East (Miami)
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为156.34 USD
地区为US East (Ohio)
已经变成4了
已经变成16了
包月价格为85.13 USD
按量价格为130.46 USD
地区为AWS GovCloud (US-East)
已经变成4了
已经变成16了
包月价格为101.29 USD
按量价格为154.00 USD
地区为AWS GovCloud (US-West)
已经变成4了
已经变成16了
包月价格为101.29 USD
按量价格为154.00 USD
地区为US West (N. California)
已经变成4了
已经变成16了
包月价格为101.44 USD
按量价格为155.02 USD
地区为US West (Oregon)
已经变成4了
已经变成16了
包月价格为85.13 USD
按量价格为130.46 USD
地区为US West (Los Angeles)
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为155.37 USD
地区为US West (Verizon) – San Francisco Bay Area
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为168.02 USD
地区为US West (Verizon) – Las Vegas
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为168.02 USD
地区为US East (Verizon) – Atlanta
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为168.02 USD
地区为US East (Verizon) – Dallas
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为168.02 USD
地区为US East (Verizon) – Miami
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为168.02 USD
地区为US East (Verizon) – New York
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为168.02 USD
地区为US East (Verizon) – Washington DC
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为168.02 USD
地区为US East (Verizon) – Boston
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为168.02 USD
Windows:
D:\Python3.8.1\Python3.8.1\python.exe C:/Users/frank/PycharmProjects/AWS统计价格/aws_price_windows.py
地区为Africa (Cape Town)
已经变成4了
已经变成16了
包月价格为17.55 USD
按量价格为19.37 USD
地区为Asia Pacific (Hong Kong)
已经变成4了
已经变成16了
包月价格为17.27 USD
按量价格为19.24 USD
地区为Asia Pacific (Tokyo)
已经变成4了
已经变成16了
包月价格为16.09 USD
按量价格为17.91 USD
地区为Asia Pacific (KDDI) – Tokyo
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为72.41 USD
地区为Asia Pacific (Seoul)
已经变成4了
已经变成16了
包月价格为45.76 USD
按量价格为60.80 USD
地区为Asia Pacific (SKT) – Daejeon
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为65.16 USD
地区为Asia Pacific (Osaka)
已经变成4了
已经变成16了
包月价格为48.06 USD
按量价格为62.73 USD
地区为Asia Pacific (Mumbai)
已经变成4了
已经变成16了
包月价格为43.43 USD
按量价格为55.55 USD
地区为Asia Pacific (Singapore)
已经变成4了
已经变成16了
包月价格为47.26 USD
按量价格为61.57 USD
地区为Asia Pacific (Sydney)
已经变成4了
已经变成16了
包月价格为47.93 USD
按量价格为62.17 USD
地区为Canada (Central)
已经变成4了
已经变成16了
包月价格为44.64 USD
按量价格为57.19 USD
地区为EU (Frankfurt)
已经变成4了
已经变成16了
包月价格为45.52 USD
按量价格为58.51 USD
地区为EU (Stockholm)
已经变成4了
已经变成16了
包月价格为42.11 USD
按量价格为53.79 USD
地区为EU (Milan)
已经变成4了
已经变成16了
包月价格为45.23 USD
按量价格为58.15 USD
地区为EU (Ireland)
已经变成4了
已经变成16了
包月价格为43.67 USD
按量价格为56.01 USD
地区为EU (London)
已经变成4了
已经变成16了
包月价格为44.94 USD
按量价格为57.72 USD
地区为EU (Paris)
已经变成4了
已经变成16了
包月价格为44.94 USD
按量价格为57.72 USD
地区为Middle East (Bahrain)
已经变成4了
已经变成16了
包月价格为46.72 USD
按量价格为60.30 USD
地区为South America (Sao Paulo)
已经变成4了
已经变成16了
包月价格为55.45 USD
按量价格为76.33 USD
地区为US East (N. Virginia)
已经变成4了
已经变成16了
包月价格为41.48 USD
按量价格为52.79 USD
地区为US East (Boston)
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为210.07 USD
地区为US East (Houston)
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为210.07 USD
地区为US East (Miami)
已经变成4了
已经变成16了
包月价格为0.00 USD
按量价格为210.07 USD
地区为US East (Ohio)
已经变成4了
已经变成16了
包月价格为138.86 USD
按量价格为184.19 USD
地区为AWS GovCloud (US-East)
已经变成4了
已经变成16了
包月价格为155.02 USD
按量价格为207.72 USD
地区为AWS GovCloud (US-West)
已经变成4了
已经变成16了
包月价格为155.02 USD
按量价格为207.72 USD
地区为US West (N. California)
已经变成4了
已经变成16了
包月价格为155.17 USD
按量价格为208.75 USD
地区为US West (Oregon)