Zillow 是領先的在線房地產交易平臺,為購房者、賣家、租房者和房地產專業人士提供豐富的信息。憑借其全面的房源數據庫、詳細的經紀人資料和廣泛的市場數據,Zillow 已成為房地產行業從業人員不可或缺的工具。
然而,由於 Zillow 先進的反機器人繫統旨在檢測和處理自動抓取行為,提取這些數據進行大規模分析可能頗具挑戰性。本指南將嚮您展示如何使用通用抓取API有效地從 Zillow 抓取經紀人聯繫電話和其他有價值的數據。
理解目標頁面結構是高效抓取的前提。Zillow的經紀人信息分佈在兩類頁面:
代理商列錶頁面
個人詳情頁
要想從這兩個頁面中抓取妳需要的數據,就要知道它們都包括了哪些數據。
在代理商列錶頁面,妳可以獲取經紀人的名稱、所在位置、評分、評價數量、聯繫方式(如電子郵件和電話號碼)、官方網站鏈接、經紀公司的名稱等。這些信息通常以列錶形式展示,每個經紀人佔據一行或一個小塊區域。
此頁面允許用戶按位置瀏覽代理商。例如,它顯示加州洛杉磯的代理商,本頁包括:
代理人姓名 :突出顯示以識別代理人或團隊。
評分和評論 :評論數量和總體星級(例如“5.0 ★”)。
價格範圍 :代理商通常處理的房產價格範圍(例如“1.2 萬美元至950 萬美元”)。
年度成交量 :過去 12 個月的銷售數量等指標,可以深入了解其活動水平。
此頁面是您收集代理數據的起點,併提供每個代理的個人資料快照。
在個人詳情頁,則能獲取更為詳細的信息。這些信息通常分佈在頁面的不同部分,需要通過網頁抓取技術來找准位置和提取。
點擊代理商名稱即可進入此頁面,本頁包括:
代理商名稱和團隊信息 :代理商或團隊的名稱及其所屬機構(例如“美國房地產公司”)。
聯繫方式 :電話號碼、電子郵件地址和辦公地址,方便收集潛在客戶信息。
銷售和經驗 :指標包括總銷售額、過去一年的銷售額、平均房價和多年經驗。
客戶評論 :以前客戶的推薦和反饋。
許可信息 :有關代理商許可的詳細信息,這可能對合規性有用。
此頁面對於潛在客戶開發特別有用,併包含直接聯繫方式。
傳統的網絡抓取工具(例如 Puppeteer 和 Playwright)由於諸多限制,通常不足以抓取Zillow 的數據。
Zillow 採用了先進的反機器人繫統,可以輕鬆檢測與自動抓取相關的重復行為和模式,例如相同的瀏覽器指紋或異常的請求頻率。這些繫統可能會觸發CAPTCHA、處理 IP 地址,甚至實施臨時封禁,使得大規模數據提取變得不切實際。
此外,傳統工具可能無法處理 Zillow 的動態內容和 JavaScript 渲染的頁面,導致數據捕獲不完整或不准確。
為了克服這些挑戰,像通用抓取API這樣的專業抓取工具必不可少。通用抓取API旨在模擬類似人類的交互,最大限度地減少可檢測到的痕跡,併有效處理動態內容,從而確保從 Zillow 可靠且可擴展地提取數據。
1.瀏覽器指紋識別
Zillow會監測是否類似人類的操作,如固定滾動速度、有無鼠標移動軌跡。通用抓取API會自動融入類似人類的操作,併且與瀏覽器進行最少且智能的交互來避免這些問題。
2.自動輪換代理
當使用同一IP對網頁進行高頻率的訪問時,會觸發反機器人繫統,導致賬號出現異常。Lunaproxy會自動分配ip,優化用戶代理。
准备:設置 LunarProxy
註冊 LunarProxy 帳戶併訪問 API 詳細信息。設置您的 API 端點和用於身份驗證的令牌。
以下為使用通用抓取API的完整代碼實現:
目標:獲取洛杉磯地區所有經紀人個人頁鏈接
import fetch from 'node-fetch'; import * as cheerio from 'cheerio'; import { createObjectCsvWriter } from 'csv-writer'; // 通用抓取API配置 const UNIBERSALSCRAPING_API = 'https://api.lunaproxy.com/v1/scrape'; const API_KEY = 'your_api_key'; // 替換為實際密鑰 // 步驟1:發送抓取請求 const scrapeDirectory = async () => { const targetUrl = 'https://www.zillow.com/professionals/real-estate-agent-reviews/los-angeles-ca/'; const params = { url: targetUrl, render: 'full', // 啟用無頭瀏覽器渲染 proxy: JSON.stringify({ type: 'residential', country: 'us' }), headers: { 'X-API-Key': API_KEY } }; try { const response = await fetch(`${UNIBERSALSCRAPING_API}?${new URLSearchParams(params)}`); const html = await response.text(); // 步驟2:解析HTML const $ = cheerio.load(html); const profileUrls = []; $('a[href^="/profile/"]').each((i, el) => { const path = $(el).attr('href'); profileUrls.push(`https://www.zillow.com${path}`); }); // 步驟3:保存結果 const csvWriter = createObjectCsvWriter({ path: 'zillow_profiles.csv', header: [{ id: 'url', title: 'Profile URL' }] }); await csvWriter.writeRecords(profileUrls.map(url => ({ url }))); console.log('成功保存經紀人鏈接'); } catch (error) { console.error('抓取失敗:', error); } }; scrapeDirectory();
目標:從個人頁提取電話、姓名、歴史成交記錄
import fs from 'fs'; import { parse } from 'csv-parse'; import { createObjectCsvWriter } from 'csv-writer'; // 配置輸出結構 const outputWriter = createObjectCsvWriter({ path: 'agent_details.csv', header: [ { id: 'name', title: 'Name' }, { id: 'phone', title: 'Phone' }, { id: 'sales', title: '12M Sales' } ] }); // 批量處理URL const processProfiles = async () => { const urls = fs.readFileSync('zillow_profiles.csv', 'utf-8') .split('\n') .slice(1) // 跳過標題行 .map(line => line.trim()); for (const url of urls) { const params = { url: url, js_instructions: JSON.stringify([ { action: 'waitForSelector', selector: '.agent-detail-section' } // 等待關鍵元素加載 ]), extract_rules: JSON.stringify({ name: '.agent-name::text', phone: 'meta[itemprop="telephone"]::attr(content)', sales: 'div.sales-stats::text => match(/\\d+/)[0]' // 使用自定義解析規則 }) }; try { const response = await fetch(`${UNIBERSALSCRAPING_API}?${new URLSearchParams(params)}`); const data = await response.json(); await outputWriter.writeRecords([{ name: data.extracted.name || 'N/A', phone: data.extracted.phone || 'N/A', sales: data.extracted.sales || 0 }]); } catch (error) { console.error(`處理失敗: ${url}`, error); } } }; processProfiles();
通過利用通用抓取API,抓取 Zillow 數據變得輕而易舉。通過利用 LunarProxy 的高級功能,房地產專業人士可以有效地提取有價值的經紀人數據,包括聯繫電話、評論和銷售統計數據,而無需擔心被檢測或攔截的風險。
准備好了嗎?立即註冊免費試用,併在您的下一個抓取項目中進行測試。
1.從 Zillow 抓取數據合法嗎?
抓取公共數據通常是允許的,但在使用通用抓取API之前,建議仔細閱讀Zillow的使用條款,併咨詢法律專業人士的意見。
2.通用抓取API抓取的Zillow數據准確性如何保證?
由於Zillow頁面結構可能發生變化,通用抓取API需要定期進行測試和調整,以確保數據提取的准確性。此外,可以通過數據驗證和清洗等手段,提高數據質量。
3.如何開始使用通用抓取API?
註冊一個LunaProxy賬號,通過儀錶闆配置抓取任務,快速抓取所需數據。
請通過郵件聯繫客服
我們將在24小時內通過電子郵件回复您