我正在尝试将组织的HR系统中的数据解析为个人资料。我在Python中使用Selenium来完成这项工作,但遇到了一些困难。
我有网址列表,我想提取向其报告的人。伪数据显示如下(所有URL的结构相同):
[{'Name': 'Jon Doe','prop': {'ID': '5646'},'ManagerName': 'Kat'},
{'Name': 'Maokai','prop': {'ID': '48521'},'ManagerName': 'Malphite'},
{'Name': 'Ryze','prop': {'ID': '43547'},'ManagerName': 'Wukong'},
{'Name': 'Zed','prop': {'ID': '98244'},'ManagerName': 'Annie'}]
我尝试了下面的编码,但只能提取第十个URL的信息...输出列表未汇总。谁能告诉我代码有什么问题以及如何解决?
driver = webdriver.Chrome(executable_path=r'xxx\chromedriver.exe')
for url in URL_lst[:10]:
driver.get(url)
time.sleep(10)
data = json.loads(driver.find_element_by_tag_name('body').text)
NAME_lst = []
ID_lst = []
Manager_lst = []
for profile in data:
NAME_lst.append(profile['Name'])
ID_lst.append(profile['prop']['ID'])
Manager_lst.append(profile['ManagerName'])
df_outputs = pd.DataFrame({'NAME':NAME_lst,
'ID':ID_lst,
'Manager':Manager_lst})
预期的输出将是10个URL的输出的总和。
出于安全原因,我无法发布网址。感谢您的理解。
看起来像缩进问题。检查一次驱动程序= webdriver.Chrome(executable_path = r'xxx \ chromedriver.exe')
for url in URL_lst[:10]:
driver.get(url)
time.sleep(10)
data = json.loads(driver.find_element_by_tag_name('body').text)
NAME_lst = []
ID_lst = []
Manager_lst = []
for profile in data:
NAME_lst.append(profile['Name'])
ID_lst.append(profile['prop']['ID'])
Manager_lst.append(profile['ManagerName'])
确定。我自己找到了解决方案:
driver = webdriver.Chrome(executable_path=r'xxx\chromedriver.exe')
output=[]
for url in URL_lst[:10]:
driver.get(url)
time.sleep(10)
data = json.loads(driver.find_element_by_tag_name('body').text)
output.append(data)
然后,创建循环以添加信息。