Мы видим, что арендная плата - это не поле, которое можно получить с помощью пакета pyzillow
, изучив атрибуты вашего result
, запустив dir(result)
, а также код здесь: Исходный код Pyzillowcode .
Однако, благодаря красоте открытого исходного кода, вы можете редактировать исходный код этого пакета и получить требуемую функциональность.Вот как это делается:
Сначала найдите, где находится код на вашем жестком диске.Импортируйте pyzillow
и запустите:
pyzillow?
Поле File
показывает это для меня:
c:\programdata\anaconda3\lib\site-packages\pyzillow\__init__.py
Следовательно, перейдите к c:\programdata\anaconda3\lib\site-packages\pyzillow
(или к тому, что он покажет для вас)и откройте файл pyzillow.py
в текстовом редакторе.
Теперь нам нужно сделать два изменения.
One: Внутри функции get_deep_search_results
высм params
.Нам нужно отредактировать это, чтобы включить функцию rentzestimate
.Поэтому измените эту функцию на:
def get_deep_search_results(self, address, zipcode):
"""
GetDeepSearchResults API
"""
url = 'http://www.zillow.com/webservice/GetDeepSearchResults.htm'
params = {
'address': address,
'citystatezip': zipcode,
'zws-id': self.api_key,
'rentzestimate': True # This is the only line we add
}
return self.get_data(url, params)
Two: Перейдите к class GetDeepSearchResults(ZillowResults)
и добавьте в словарь attribute_mapping
следующее:
'rentzestimate_amount': 'result/rentzestimate/amount'
Вуаля! Настроенный и обновленный пакет Python теперь возвращает Rent Zestimate!Давайте попробуем:
from pyzillow.pyzillow import ZillowWrapper, GetDeepSearchResults
address = ['11 Avenue B, Johnson City, NY']
zip_code = ['13790']
zillow_data = ZillowWrapper('X1-ZWz1835knufc3v_38l6u')
deep_search_response = zillow_data.get_deep_search_results(address, zip_code)
result = GetDeepSearchResults(deep_search_response)
print(result.rentzestimate_amount)
, который правильно возвращает стоимость аренды в размере 1200 долларов США, которая может быть подтверждена на странице Zillow этого адреса .