如何使用循环从JSON中的多个URL解析内容-Python中的Selenium

我正在尝试将组织的HR系统中的数据解析为人员档案。我在Python中使用Selenium来完成这项工作,但遇到一些困难。

我有URL列表,我想提取向其举报的人。伪数据显示如下(所有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的输出的汇总。

出于安全原因,我无法发布这些URL。感谢您的理解。

ymsabc 回答:如何使用循环从JSON中的多个URL解析内容-Python中的Selenium

看起来像缩进问题。检查一次     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'])
,

好。我自己找到了解决方案:

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)

然后,创建循环以添加信息。

本文链接:https://www.f2er.com/3157629.html

大家都在问