【发布时间】:2022-02-12 07:21:10
【问题描述】:
我无法解决以下问题。 我正在尝试从以下网页收集数据:https://localhelp.healthcare.gov/#/results?q=UTAH&lat=0&lng=0&city=&state=UT&zip_code=&mp=FFM
我的方法是使用 Selenium chrome 驱动程序为每个医疗保健代理收集数据,关闭此网页,但不知道如何循环遍历每条记录并将数据添加到每个创建的列表中。到目前为止,我可以收集一条记录的数据,但我的问题在于我的循环。我如何将每条记录识别为代理,并将其添加到我的数据框中以进行输出?这是我的代码:
from selenium import webdriver # connect python with webbrowser-chrome
import time
import pandas as pd
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome('C:/Users/picka/Documents/chromedriver.exe')
driver.maximize_window()
url = 'https://localhelp.healthcare.gov/#/results?q=UTAH&lat=0&lng=0&city=&state=UT&zip_code=&mp=FFM'
name = []
phone = []
email = []
def go_to_network():
driver.get(url)
for agent in driver.find_elements_by_xpath('class.qa-flh-results-list'):
get_name = (WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span.qa-flh-resource-name"))).text)
get_phone = (WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a.qa-flh-resource-phone"))).text)
get_email = (WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a.ds-u-overflow--hidden.ds-u-truncate.ds-u-display--inline-block"))).text)
name.append(get_name)
phone.append(get_phone)
email.append(get_email)
go_to_network()
record_output = {'Agent Name': name, 'Phone': phone, 'Email': email}
df = pd.DataFrame(record_output)
df.to_csv(r'C:\Users\picka\Documents\Dev\Reports\Agent-data.csv', header=True, index=False)
print(df)
【问题讨论】:
标签: python-3.x selenium loops list-comprehension webdriverwait