![](/img/trans.png)
[英]fetching selenium data and appendinig into dictionary {key:value} pair in python
[英]I need to have table data in a map like key value pair using selenium python
我需要使用 selenium python 将下表数据格式化为以下方式。 需要将该数据保留在 map 中,并需要将其与其他表数据进行比较。
表数据: https://www.w3schools.com/html/html_tables.asp
{"Country": ["Germany", "Mexico", "Austria", "UK", "Canada", "Italy"]
"Company": ["Alfreds Futterkiste", "Centro comercial Moctezuma", soon..]
"Contact": ["Maria Anders", "Francisco Chang", soon..]
}
我尝试了以下代码,但正在关注 output:仅显示第一个值。
谁能让我知道我们该怎么做?
[('Company', 'Alfreds Futterkiste'), ('Contact', 'Maria Anders'), ('Country', 'Germany')]
from selenium import webdriver
header = []
body = []
driver = webdriver.Chrome()
driver.get("https://www.w3schools.com/html/html_tables.asp")
table = driver.find_elements_by_css_selector("table#customers tbody tr th")
tbody = driver.find_elements_by_css_selector("table#customers tbody tr td")
for row in table:
header.append(row.text)
for t in tbody:
body.append(t.text)
result = zip(header, body)
result_list = list(result)
print(result_list)
driver.quit()
使用WebDriverWait()
并等待表可见并使用以下逻辑在字典中捕获表数据。
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
dictitem={}
driver = webdriver.Chrome()
driver.get("https://www.w3schools.com/html/html_tables.asp")
WebDriverWait(driver,5).until(EC.element_to_be_clickable((By.ID,"customers")))
table = driver.find_elements_by_css_selector("table#customers tbody tr th")
for i in range(len(table)):
dictitem[table[i].text]=[item.text for item in driver.find_elements_by_xpath("//table[@id='customers']//tbody//tr//td[{}]".format(i+1))]
print(dictitem)
Output :
{'Company': ['Alfreds Futterkiste', 'Centro comercial Moctezuma', 'Ernst Handel', 'Island Trading', 'Laughing Bacchus Winecellars', 'Magazzini Alimentari Riuniti'], 'Country': ['Germany', 'Mexico', 'Austria', 'UK', 'Canada', 'Italy'], 'Contact': ['Maria Anders', 'Francisco Chang', 'Roland Mendel', 'Helen Bennett', 'Yoshi Tannamuri', 'Giovanni Rovelli']}
选项 2:您也可以使用 python pandas。
import pandas as pd
df=pd.read_html("https://www.w3schools.com/html/html_tables.asp")[0]
print(df.to_dict())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.