Spaces:
No application file
No application file
| from fastapi import FastAPI, HTTPException | |
| import requests | |
| from bs4 import BeautifulSoup | |
| import pandas as pd | |
| app = FastAPI() | |
| def get_zillow_data(address): | |
| headers = { | |
| 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} | |
| search_query = requests.utils.quote(address) | |
| url = f'https://www.zillow.com/homes/{search_query}_rb/' | |
| response = requests.get(url, headers=headers) | |
| soup = BeautifulSoup(response.content, 'html.parser') | |
| square_footage = 'N/A' | |
| # Adjust the selectors based on Zillow's HTML structure | |
| sqft_element = soup.find('span', {'data-testid': 'bed-bath-item'}, text=lambda x: 'sqft' in x) | |
| if sqft_element: | |
| square_footage = sqft_element.text.split('sqft')[0].strip() | |
| return square_footage | |
| def read_zillow(address: str): | |
| try: | |
| sqft = get_zillow_data(address) | |
| return {"address": address, "square_footage": sqft} | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) | |