Получение данных об аренде Zillow из API Zillow - PullRequest
3 голосов
/ 11 июля 2019

Я играю с Zillow API, но у меня проблемы с получением данных об аренде. В настоящее время я использую оболочку Python Zillow, но я не уверен, работает ли она для получения арендной платы.

Это страница справки, которую я использую для Zillow API: https://www.zillow.com/howto/api/GetSearchResults.htm

import pyzillow
from pyzillow.pyzillow import ZillowWrapper, GetDeepSearchResults
import pandas as pd

house = pd.read_excel('Housing_Output.xlsx')


### Login to Zillow API
address = ['123 Test Street City, State Abbreviation'] # Fill this in with an address
zip_code = ['zip code'] # fill this in with a zip code

zillow_data = ZillowWrapper(API KEY)
deep_search_response = zillow_data.get_deep_search_results(address, zip_code)
result = GetDeepSearchResults(deep_search_response)

# These API calls work, but I am not sure how to retrieve the rent data
print(result.zestimate_amount)
print(result.tax_value)

ДОБАВЛЕНИЕ ДОПОЛНИТЕЛЬНОЙ ИНФОРМАЦИИ:

Глава 2 рассказывает, как получить данные об аренде, создав функцию XML с именем zillowProperty. Мои навыки работы с XML невелики, но я думаю, что мне нужно либо:

а) импортировать некоторый пакет XML, чтобы помочь прочитать его б) сохранить код в виде файла XML и использовать функцию open для чтения файла

https://www.amherst.edu/system/files/media/Comprehensive_Evaluation_-_Ningyue_Christina_Wang.pdf

Я пытаюсь предоставить код здесь, но по какой-то причине он не позволит мне перейти к следующей строке.

1 Ответ

2 голосов
/ 12 июля 2019

Мы видим, что арендная плата - это не поле, которое можно получить с помощью пакета 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 этого адреса .

...