Spaces:
Runtime error
Runtime error
import os | |
import json | |
import requests | |
import requests | |
import urllib.parse | |
import json | |
from easydict import EasyDict as edict | |
from fastapi import FastAPI, File, UploadFile, Form | |
from Zillow_Scraper.selenium_wrapper import search | |
API_token = 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1eG42aWVkcXlwMmtzbGVnZms2N3pmN3kyN2MzMTBsaSIsImlzcyI6ImRhdGFmaW5pdGkuY28ifQ.fwFM5-Z5ZMPwqbRuiyQhcQP9NjMqP-sm-EZ7W3BA2NnfqN6p0_Kapz6pr2tMGlZ7ranZ1DVb_gScmtPm8R_F6JpJ5dKNL7rZamUwR84TzxNPzOAns7UgjMSx-5p-7f9U2_NGg3ORveaQTfs1-QH9uiDw4v6U91lhD4rReXVgom5qhNlSbmHkj81DHVHaX969hPDtdEiQ5tspib3xgwWDyXYQYGcwPFoLIHET9srNP7zKWyghbiwh90DTnj3ASmYFO3Nrj8zdfXmkCkUXa1vwEf69qKD8T2L8-OsZlMn-t8X7uYyi_pFP4v78N_6SgfX1t8csRUqlymkFX-gVnqeDsPivSXvQrz9Su68g2HlMyOrutpdc7i6z3OCy8zt3HET_LMw4ccKHYeNxHJLf572ALRHvLVxWJTtEVPyqZ_IXHSHdhpk5jGvxSaW_T9ufmmeNfuLdDnOm_T1VhnXMI6-iAYDsWidSSzhQkrle8XcptRbyRyilMzU37BCd4klUiuVoMNJrBhIQEM9vgDEH8BfJHHOha3dCxWj0pKzlv4SHXokTlBVNDWg_vZFobylTOzsi0055PgenV-qiACzZpbFylTP0egdVKrxxfuOYe8fhzi61cwoaZ9YUqOspYRGsm_wRCwc3daS8SEvaEl1tXoRTpKsxe5kI6u7AVubqmhhI1LA' | |
# eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1MzRmanRmdmZwNnplcmJldHEzcnpienExZ2l6b201dyIsImlzcyI6ImRhdGFmaW5pdGkuY28ifQ.CONEaG0VEABopROdGvMWy3sBv0X8dB2rAUhijXEKRdRgAbII-zbX6FIZsV7pZ72M5BbaREhjOi9eU-5NKpvhiWnU8cjlrx0AmHRNrIBrHmPvoFE9IFeIN1pYS9nOvU6CctQB6ZvmoEMpF_VYVKwkBkmUNmY1UPF6TdINkdWg9ym0pC1TIhch4WM5akuHwlJXirzbV07SRrijnQUT1DRpt7_igbwRSt8smFUWejFDJnbxAaMeqsLHo7Trb3FgkBLAEHDdA7CgG2HONsAvOEKnf7hwpp3_mfziZ_uYO369wbfxkYIn6WnMqHYjjC6viD0b5zZI-hjZgT-87CUetWj3Oqs_B37JzqiHm0rxRHxlfFP_IvpqS263tjdnMgSUmsETy62W_cXAuk_Wn45nGiPfM26HclcZxBieYuCOFNojdZE-1apMehtXAgN0JEN29y5JZGBoSPHPZQKfvfAGEHlh-Ty3yZRiiPaQ2m4BLilZN2bB_tA0c8s7RXeHWph_t_GH5xoLO0PB_fZa_RrUmg-Cc2wsjTr59rYH-uGWpfhE-7Qa1du1tZYE4PpRqTq7KysAZzfuAgkhpJzpXwDAnuEsRDSGdhbteKnRIKajiEw8jt9KW0OnXEDOxx_cU9YrPmDvJIdvQjKKYz1Tuptce7ZmxXaHYoOtzN1I1aKpGQe1UJw | |
format = 'JSON' | |
# query = 'country:US AND numRoom:3 AND numFloor:1 AND postalCode:75231 AND "prices":{"amountMax": 289000}' | |
download = False | |
request_headers = { | |
'Authorization': 'Bearer ' + API_token, | |
'Content-Type': 'application/json', | |
} | |
def send_request (budget,zip_code): | |
# query = "country:US AND numRoom:3 AND numFloor:1 AND postalCode:75231 AND {prices.amountMin:>=100} AND {prices.amountMax:<={param}} AND {prices.currency:USD} " | |
query = "country:US AND numRoom:3 AND numFloor:1 AND postalCode:"+f"{zip_code}"+" AND {prices.amountMin:>=100} AND {prices.amountMax:<="+ f"{budget}"+"} AND {prices.currency:USD} " | |
num_records = 7 | |
request_data = { | |
'query': query, | |
'format': format, | |
'num_records': num_records, | |
'download': download, | |
} | |
# Make the API call. | |
r = requests.post('https://api.datafiniti.co/v4/properties/search',json=request_data,headers=request_headers) | |
if r.status_code == 200: | |
out_data = json.loads(r.content.decode('utf8').replace('"', '\"')) | |
print("Founded result: ",out_data['num_found']) | |
return out_data['num_found'],out_data['records'] | |
else: | |
print('Request failed') | |
return None,None | |
# _,o = send_request (8000000,19701) | |
# print(o) | |
def send_zillow_request (budget,zip_code): | |
inf = search(zipcode=zip_code, budget=budget, for_sale = "rent") | |
return 1, inf | |
# r = requests.post('https://api.datafiniti.co/v4/properties/search',json=request_data,headers=request_headers) | |
# if r.status_code == 200: | |
# out_data = json.loads(r.content.decode('utf8').replace('"', '\"')) | |
# print("Founded result: ",out_data['num_found']) | |
# return out_data['num_found'],out_data['records'] | |
# else: | |
# print('Request failed') | |
# return None,None | |
# ## 1. Health Check | |
# url = "https://api.datafiniti.co/v4/health" | |
# response = requests.request("GET", url, headers=[]) | |
# print(response.text) | |
# ## 2. Authentication | |
# url = "https://api.datafiniti.co/v4/auth" | |
# header= {"key": "Content-Type", | |
# "name": "Content-Type", | |
# "type": "text", | |
# "value": "application/json" | |
# } | |
# # payload = json.dumps({ | |
# body = {"mode": "raw","raw": "{\n\t\"email\": \"ar@playpingpong.co\",\n\t\"password\": \"p@ssWord123\"\n\t\n}"} | |
# response = requests.request("POST", url, headers=header, data=body) | |
# print(response.text) | |
# query = "country:US AND numRoom:3 AND numFloor:1 AND postalCode:75231 AND {prices.amountMin:>=100} AND {prices.amountMax:<= "+ f"{param}"+ "} AND {prices.currency:USD} " | |