我正在构建一个嵌套字典,其中包含我从https://www.koodomobile.com/rate-plans?INTCMP=KMNew_NavMenu_Shop_Plans中提取的几个元素。然而,即使我能积极地看到我在抓取准确的数据(当我打印时),它似乎在重复整个目录中的关键值。重复的部分内容是每月成本、数据数量、分钟数和消息
我希望能够正确地将我的字典planPermutation嵌套在另一个字典planDicts中
以下是我的输出示例:
{ 'Bring your own device 30': {'plan type Name': 'Bring your own device', 'monthlyCost': 75, 'dataNum': 10000, 'minutes': 'Unlimited', 'messaging': 'Unlimited'},
'Bring your own device 35': {'plan type Name': 'Bring your own device', 'monthlyCost': 75, 'dataNum': 10000, 'minutes': 'Unlimited', 'messaging': 'Unlimited'},
'Bring your own device 45': {'plan type Name': 'Bring your own device', 'monthlyCost': 75, 'dataNum': 10000, 'minutes': 'Unlimited', 'messaging': 'Unlimited'}, ... }
def planDictsGenerator():
planPermutation = {}
index = 1
# name
planName = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '#block-system-main > div > div > div.view-content > div.rate-plan-block > div.tab-header-wrapper > h2')))
planName = str(planName[0].text)
planPermutation["plan type Name"] = planName
subplans = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,'.panel-col-first')))
for plan in subplans:
driver.execute_script("arguments[0].scrollIntoView();", plan)
driver.execute_script("arguments[0].click();", plan)
time.sleep(1)
# monthlyCost
monthlyCost = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '.active .koodo-currency')))
monthlyCost = monthlyCost[0].text
monthlyCost = int(monthlyCost.replace('$', ''))
planPermutation["monthlyCost"] = monthlyCost
# Data
dataNum = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '.active .views-field-field-data-mobile-value strong')))
dataNum = dataNum[0].text
if "GB" in dataNum:
dataNum = int(dataNum.replace(' GB', '')) * 1000
else:
dataNum = int(dataNum.replace(' MB', ''))
planPermutation["dataNum"] = dataNum
# minutes
minutes = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '.active .views-field-field-canada-wide-any-min-mobile strong')))
minutes = minutes[0].text
if "Unlimited" in minutes:
minutes = "Unlimited"
else:
minutes = int(minutes)
planPermutation["minutes"] = minutes
# messaging
messaging = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '.active .views-field-field-unlim-text-and-pic-mobile strong')))
messaging = messaging[0].text
if "Unlimited" in messaging:
messaging = "Unlimited"
else:
messaging = int(messaging)
planPermutation["messaging"] = messaging
dictName = planName + " " + str(monthlyCost)
planDicts[dictName] = planPermutation
print(planPermutation)
[1]: https://www.koodomobile.com/rate-plans?INTCMP=KMNew_NavMenu_Shop_Plans
目前没有回答
相关问题 更多 >
编程相关推荐