因此,我正在尝试抓取有关费率,级别,持续时间,认证的信息,并将其保存在csv文件中。首先,我不知道我是否做对了,因为我是Selenium的新手,而且我不知道如何正确地将其保存在一个csv文件中。所有信息均来自以下站点:here is the link。我试图使用下面的代码,但是没有用:
driver=webdriver.Firefox(executable_path="/usr/bin/geckodriver")
driver.get('https://alison.com/course/global-islamic-finance-and-banking')
rate = driver.find_element(By.XPATH, '//div[contains(@class,"course-banner")]//li[2]//div[2]')
level = driver.find_element(By.XPATH, '//span[contains(text(),"Academic - Third Level - Level 1")]')
duration = driver.find_element(By.XPATH, '//div[contains(@class,"course-brief-container")]//div[contains(@class,"course-brief")]//li[1]//div[2]')
certification = driver.find_element(By.XPATH, '//div[contains(@class,"course-brief-container")]//div[contains(@class,"course-brief")]//li[3]//div[2]')
我想抓取这些数据并保存在csv文件中。
您是否知道如何清除此物品?谢谢您的帮助。
答案 0 :(得分:0)
您需要输入要从中提取文本的元素的确切xpath。在您的代码中,xpath与目标元素不完全相同。您可以尝试以下操作。
请注意,费率值是组合文本,您必须从其中删除Rated
文本。
driver.get("https://alison.com/course/global-islamic-finance-and-banking")
driver.maximize_window()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//ul[@class='course-banner--info']/li[2]/div[2]/h4")))
rate = driver.find_element(By.XPATH, "//ul[@class='course-banner--info']/li[2]/div[2]/h4").text
level = driver.find_element(By.XPATH, "//ul[@class='course-banner--info']/li[3]/a/div[2]/span").text
duration = driver.find_element(By.XPATH, "//li[@class='course-icons']/div[2]/h3[contains(text(),'Duration')]/following-sibling::span").text
certification = driver.find_element(By.XPATH, "//li[@class='course-icons']/div[2]/h3[contains(text(),'Certification')]/following-sibling::span").text
print(rate)
print(level)
print(duration)
print(certification)