Spaces:
Runtime error
Runtime error
| import csv | |
| from selenium import webdriver | |
| from selenium.webdriver.common.by import By | |
| import time | |
| # Initialize the Selenium webdriver (make sure to download the appropriate webdriver for your browser) | |
| driver = webdriver.Chrome() | |
| # Define the URLs | |
| url1 = "https://www.ynhhs.org/find-a-doctor#q=psychiatry&sort=relevancy&numberOfResults=100&f:affiliations=[YaleMedNortheast]" | |
| url2 = "https://www.ynhhs.org/find-a-doctor#q=psychiatry&first=100&sort=relevancy&numberOfResults=100&f:affiliations=[YaleMedNortheast]" | |
| # Function to scrape data from a page | |
| def scrape_doctors(url): | |
| driver.get(url) | |
| time.sleep(5) # Adjust the sleep time as needed | |
| doctor_cards = driver.find_elements(By.CLASS_NAME, "doctor-card") | |
| doctors_data = [] | |
| for doctor_card in doctor_cards: | |
| try: | |
| name = doctor_card.find_element(By.CLASS_NAME, "info-container").text.strip() | |
| doctors_data.append([name]) # Here you might want to extract more details | |
| except Exception as e: | |
| print(f"Error processing card: {e}") | |
| return doctors_data | |
| # Open the first URL and scrape | |
| doctors_info = scrape_doctors(url1) | |
| # Open the second URL and continue scraping | |
| doctors_info.extend(scrape_doctors(url2)) | |
| # Save all the doctor information to a CSV file | |
| with open('doctors_info.csv', mode='w', newline='', encoding='utf-8') as file: | |
| writer = csv.writer(file) | |
| writer.writerow(['Name']) # Write header row | |
| writer.writerows(doctors_info) # Write all data rows | |
| # Close the webdriver | |
| driver.quit() |