Tony Wang4 分で読めますZillow のスクレイピング方法 2026年版(API と Python)
2026 年に Zillow をスクレイピングする 3 つの方法 — DIY の Python、ノーコードツール、またはプロパティ検索とリスティング詳細のための構造化 API — と法的な基本事項を解説します。
Zillow を 2026 年にスクレイピングする最速の方法は、JavaScript を多用した Zillow のページを解析してアンチボット防御と戦うのではなく、正規化された JSON(検索結果、リスティングの詳細、価格、寝室数、浴室数、住所)を返す構造化された Zillow API を呼び出すことです。DIY のスクレイパーを作ることもできますが、Zillow は自動化を積極的にブロックします。このガイドでは 3 つのアプローチすべてを取り上げ、それぞれが何を返し、どこで壊れ、そして法的な基本事項について解説します。
Zillow をスクレイピングするのは合法ですか?
公開されている Zillow のリスティングデータ(価格・住所・寝室数/浴室数・ステータス)をスクレイピングするのは、一般的に比較的低リスクな公開ウェブのスクレイピングです。米国では hiQ v. LinkedIn が、公開データへのアクセスは CFAA 違反にあたらないと判断しており、価格のような事実には著作権がありません。ただし Zillow の利用規約は自動アクセスを禁止しており、リスティングの写真や説明文には著作権がある場合があるため、それらの再掲載は避けてください。公開された事実データを使い、レート制限を尊重し、Zillow の規約を確認してください。ウェブスクレイピングは合法かを参照してください。これは法的助言ではありません。
選択肢 1: Python での DIY(そしてなぜ壊れるのか)
Zillow は大量の JavaScript でレンダリングされ、積極的に防御しているため、ヘッドレスブラウザに頼ることになります。
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
page = p.chromium.launch().new_page()
page.goto("https://www.zillow.com/austin-tx/")
# then parse the embedded __NEXT_DATA__ JSON, page by map region, and clear the press-and-hold CAPTCHA...
これはデモでは動きますが、その後壊れます。Zillow はウェブ上で最も難しいターゲットの 1 つと評価されています。
- PerimeterX(HUMAN)ボット検出 — 行動分析(マウス、キー入力)、ブラウザフィンガープリンティング、HTTP/2 およびヘッダー順序のチェック、そして長押し式の CAPTCHA。residential プロキシとフィンガープリントのなりすましが必要です。
- 安全なレートが低い — 実務者は IP ごとに 1 日あたり 20〜50 件のプロパティ詳細ページ程度に抑えているため、スケールするには多数のローテーションする residential IP が必要です。
- 変化し続ける埋め込み JSON — Zillow のクライアントデータ(
__NEXT_DATA__形式のブロブ)は形が変わり、パーサーを壊します。 - バイパスの劣化 — オープンソースの PerimeterX バイパスは通常、数か月でパッチされるまでしかもちません。
選択肢 2: ノーコードツール
ビジュアルなエクストラクターは CSV/JSON をエクスポートでき、単発の取得には向いていますが、予測可能なフィールドを扱う製品内のパイプラインにはあまり便利ではありません。
選択肢 3: 構造化された Zillow API
繰り返し行うワークフローには、Zillow スクレイピング API が、実行すべきブラウザなしで正規化された JSON を返します。地域で検索します。
curl "https://api.crawlora.net/api/v1/zillow/search?location=Austin,%20TX" \
-H "x-api-key: $CRAWLORA_API_KEY"
Python で ZPID を使って単一のリスティングを取得します。
import requests
prop = requests.get(
"https://api.crawlora.net/api/v1/zillow/property/12345678",
headers={"x-api-key": "YOUR_API_KEY"},
).json()["data"]
print(prop.get("address"), prop.get("price"), prop.get("bedrooms"))
レスポンスはそのまま保存できる正規化された JSON です(フィールドは例示的なものです。ドキュメントを確認してください)。
{
"code": 200,
"msg": "OK",
"data": [
{
"zpid": "12345678",
"address": "123 Example St, Austin, TX",
"price": 625000,
"bedrooms": 3,
"bathrooms": 2,
"living_area": 1850,
"status": "FOR_SALE"
}
]
}
まずオートコンプリートで地域を解決してから検索します。あるいは ZPID で 1 件のリスティングを取得します。
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/zillow"
place = requests.get(f"{base}/autocomplete", headers=h, params={"query": "Austin, TX"}).json()["data"]
results = requests.get(f"{base}/search", headers=h, params={"location": "Austin, TX"}).json()["data"]
オートコンプリートは region_id とマップの境界(west/east/south/north)を返します。それらを検索に渡すのが最も安定したリクエストの形なので、Zillow の URL スラッグを推測する必要がありません。
収集できるもの
公開リスティングがそれらを公開している範囲で: ZPID、住所、価格、寝室数、浴室数、居住面積、敷地面積、住宅タイプ、ステータス、ブローカー、説明文、メディア、および推定値。加えて、リクエストした検索または ZPID のコンテキストが得られます。
制限とよくある課題
- 公開されている公式 API はありません。 Zillow の公式 API アクセスはパートナー(Bridge / MLS プログラム)に限定されているため、任意の公開リスティングを収集するにはスクレイピングが必要です。
- PerimeterX、Very-Hard 評価。 Zillow は行動分析とフィンガープリンティングを備えた PerimeterX(HUMAN)を実行しています。DIY には residential プロキシ、フィンガープリントのなりすまし、低い IP あたりレートが必要で、オープンソースのバイパスは数か月で劣化します。構造化 API はこれを 1 つのキーの背後で吸収します。
- リスティングのメディアには著作権があります。 価格、住所、寝室数/浴室数、ステータスは収集できる事実ですが、リスティングの写真やエージェントの説明文には著作権があります。再掲載しないでください。
- ステータスは速く変わり、推定値はモデルです。 売出中/売却済み/保留中は素早く切り替わるため、スケジュールに沿って再スクレイピングし、Zestimate 式の値は真実ではなく Zillow のモデル出力として扱ってください。
どこで使われるか
- 不動産市場インテリジェンス — 市場ごとにリスティング、価格、在庫を追跡します。不動産市場インテリジェンスのユースケースを参照してください。
- 比較対象と評価のリサーチ — あるエリアの比較可能なリスティングを取得します。
- リードとテリトリーのマッピング — 不動産のワークフローのためにローカルデータと組み合わせます。
Sources
収集を始める
まず無料で試す: 無料ウェブスクレイパーで任意の公開 URL を実行するか、アンチボットチェッカーでサイトがボットをブロックするかどうかを確認できます。サインアップは不要です。
Playground で検索エンドポイントをテストし、API ドキュメントでスキーマを確認し、料金を確認してください。あわせてウェブスクレイピング API の選び方とウェブスクレイピングは合法かも参照してください。
よくある質問
ブロックされずに Zillow をスクレイピングできますか?
Zillow はウェブ上で最も難しいターゲットの 1 つで、行動分析、ブラウザフィンガープリンティング、長押し式の CAPTCHA を備えた PerimeterX(HUMAN)を実行しています。そのため DIY には residential プロキシ、フィンガープリントのなりすまし、低い IP あたりレート(実務者は IP ごとに 1 日あたり 20〜50 件の詳細ページ程度に抑えています)が必要です。構造化 API は、プロキシとブラウザの実行をエンドポイントの背後で処理します。
Zillow に公式 API はありますか?
公開されているものはありません。Zillow の API アクセスはパートナー(Bridge / MLS プログラム)に限定されているため、任意の公開リスティングを収集するにはスクレイピングが必要です。Crawlora の Zillow エンドポイントは、公開の検索データとプロパティデータを 1 つの API キーから正規化された JSON として返します。
どの Zillow データを取得できますか?
公開リスティングのフィールド: ZPID、住所、価格、寝室数/浴室数、居住面積、敷地面積、住宅タイプ、ステータス、ブローカー、説明文、メディア、および推定値(利用可能な範囲で)。価格や住所のような事実はリスクが最も低く、写真や説明文には著作権がある場合があります。
地域を検索するにはどうすればよいですか?
オートコンプリートのエンドポイント(query、ステータス for_sale/for_rent/sold 付き)で地域を解決し、返された region_id またはマップ境界を /zillow/search に渡します(これが最も安定した形です)。あるいは /zillow/property/{zpid} で 1 件のリスティングを取得します。
リスティングの写真や説明文を保存できますか?
それらには著作権がある場合があります。慎重に扱い、再掲載は避けてください。価格や住所のような事実フィールドはリスクが最も低いものです。