Thu thập kết quả tìm kiếm Google Maps trong một trình duyệt thật và nhận mọi địa điểm trên trang: tên, xếp hạng, đánh giá, danh mục, địa chỉ, giờ mở cửa và tọa độ. Trang tải không được thì không tốn phí.
1.000 yêu cầu miễn phí · Chỉ tính phí khi thành công · 195+ quốc gia · Sẵn sàng cho Claude
Sẵn sàng tìm kiếm của riêng bạn? Nhận API key hoặc đặt lịch demo.
Hãy cho chúng tôi biết đôi nét về đội ngũ của bạn để nhận:
Mỗi lượt tìm kiếm trên Google Maps dừng ở khoảng 60 địa điểm, cả trong ứng dụng lẫn trong API. Hãy chia thành phố thành các ô: mỗi ô là thêm một trang với cùng mức giá, và danh sách cứ dài ra.
Chi phí cho 25 lượt tìm theo ô, mỗi lượt một trang
Gologin Web Unlockerkhoảng $0.02
Google Places APIkhoảng $0.80
API chính thức trả về những trường mà Google chọn sẵn. Trang Maps chứa nhiều hơn, và Web Unlocker trả về toàn bộ trang.
| Bạn lấy được gì | Google Places API | |
|---|---|---|
| 1.000 địa điểm kèm số điện thoại và website | Khoảng $1.10 | Khoảng $1.75 |
| Xếp hạng chia theo số sao, từ 5 đến 1 | Có | Không, chỉ điểm trung bình |
| Chủ đề đánh giá kèm số lượng | Có | Không |
| Liên kết đặt chỗ trực tuyến | Có | Không, chỉ cờ có hoặc không |
| Lưu giữ kết quả | Chúng tôi không đặt hạn chế | Chỉ ID địa điểm |
Cần thu thập nhiều hơn Google Maps? Web Unlocker trả về bất kỳ trang nào theo cùng cách, với cùng mức giá.
Google Maps xếp hạng địa điểm theo nơi phát ra lượt tìm kiếm. Chọn một quốc gia, một vùng hoặc một thành phố, và Web Unlocker sẽ tải bản đồ từ đó.
Sẵn sàng tìm kiếm từ thành phố của khách hàng bạn? Nhận API key và các yêu cầu miễn phí.
Một yêu cầu cho mỗi lượt tìm: gửi địa chỉ Maps, nhận lại trang đã render, đọc các địa điểm. Bản demo ở trên chạy cùng parser này.
Điền biểu mẫu ở trên. Key sẽ được gửi qua email trong vòng một ngày làm việc.
google.com/maps/search/ cộng với truy vấn của bạn, và quốc gia, vùng hoặc thành phố để tìm từ đó.
Mỗi địa điểm là một thẻ trên trang, với tên, xếp hạng, đánh giá, địa chỉ và giờ mở cửa hiện rõ.
GOLOGIN_SCRAPING_API_KEY=your_key node maps-search.mjshttps://parsing.webunlocker.gologin.com/v1/scrapeconst search = 'dentists in Miami';
const params = new URLSearchParams({
url: `https://www.google.com/maps/search/${encodeURIComponent(search)}?hl=en&ucbcb=1`,
render_js: 'true',
wait: '9000',
geo: 'us',
format: 'json',
});
const response = await fetch(`https://parsing.webunlocker.gologin.com/v1/scrape?${params}`, {
headers: { apikey: process.env.GOLOGIN_SCRAPING_API_KEY },
});
const { data } = await response.json();
const text = (value) => value?.replaceAll('&', '&').replaceAll(''', "'").replaceAll('"', '"');
const places = data.html
.split('role="article"')
.slice(1)
.map((card) => ({
name: text(card.match(/class="hfpxzc" aria-label="([^"]+)"/)?.[1]),
rating: card.match(/>([1-5]\.\d)</)?.[1],
reviews: card.match(/>\(([\d,]+)\)</)?.[1],
lat: card.match(/!3d(-?[\d.]+)/)?.[1],
lng: card.match(/!4d(-?[\d.]+)/)?.[1],
}));
console.table(places);pip install requestsGOLOGIN_SCRAPING_API_KEY=your_key python maps_search.pyhttps://parsing.webunlocker.gologin.com/v1/scrapeimport html as entities
import os
import re
from urllib.parse import quote
import requests
search = "dentists in Miami"
response = requests.get(
"https://parsing.webunlocker.gologin.com/v1/scrape",
params={
"url": f"https://www.google.com/maps/search/{quote(search)}?hl=en&ucbcb=1",
"render_js": "true",
"wait": "9000",
"geo": "us",
"format": "json",
},
headers={"apikey": os.environ["GOLOGIN_SCRAPING_API_KEY"]},
timeout=90,
)
html = response.json()["data"]["html"]
def find(pattern, card):
match = re.search(pattern, card)
return entities.unescape(match.group(1)) if match else None
for card in html.split('role="article"')[1:]:
print(
find(r'class="hfpxzc" aria-label="([^"]+)"', card),
find(r">([1-5]\.\d)<", card),
find(r">\(([\d,]+)\)<", card),
find(r"!3d(-?[\d.]+)", card),
find(r"!4d(-?[\d.]+)", card),
)GOLOGIN_SCRAPING_API_KEY=your_key node maps-tiles.mjshttps://parsing.webunlocker.gologin.com/v1/scrapeconst query = 'dentists';
const center = { lat: 25.775, lng: -80.23 };
const step = 0.03;
const found = new Map();
async function tile(lat, lng) {
const params = new URLSearchParams({
url: `https://www.google.com/maps/search/${query}/@${lat},${lng},15z?hl=en&ucbcb=1`,
render_js: 'true',
wait: '9000',
geo: 'us',
format: 'json',
});
for (let attempt = 0; attempt < 3; attempt += 1) {
const response = await fetch(`https://parsing.webunlocker.gologin.com/v1/scrape?${params}`, {
headers: { apikey: process.env.GOLOGIN_SCRAPING_API_KEY },
});
if (response.ok) return (await response.json()).data.html;
await new Promise((resolve) => setTimeout(resolve, 10000));
}
return '';
}
for (let row = -2; row <= 2; row += 1) {
for (let col = -2; col <= 2; col += 1) {
const html = await tile((center.lat + row * step).toFixed(4), (center.lng + col * step).toFixed(4));
for (const card of html.split('role="article"').slice(1)) {
const name = card.match(/class="hfpxzc" aria-label="([^"]+)"/)?.[1];
if (name) found.set(name, { name, lat: card.match(/!3d(-?[\d.]+)/)?.[1], lng: card.match(/!4d(-?[\d.]+)/)?.[1] });
}
console.log(`tile ${row},${col}: ${found.size} places so far`);
}
}
console.table([...found.values()]);Cần nhấp, cuộn hoặc mở tab đánh giá trước? Cloud Browser trao cho code của bạn cả trình duyệt.
Một trang tìm kiếm liệt kê tối đa 7 địa điểm, và mỗi trang địa điểm bổ sung số điện thoại và website. Với một mức giá cho mỗi trang, 1.000 địa điểm kèm thông tin liên hệ có giá khoảng $1.10.
Một trang khó có giá
bằng một trang dễ.
Trang tải không được thì không tốn phí. Bạn trả cho một trang đã render, không gì khác.
Chi phí cho 1.000 địa điểm kèm số điện thoại và website
Giá công bố của các đối thủ
Web Unlocker ở gói Growth, $0.98 cho 1.000 trang.
Một tài khoản, một mạng proxy, một hệ sinh thái. Chọn sản phẩm phù hợp với công việc.
Thu thập cả các cửa hàng khác? Xem các scraper Amazon, eBay và Walmart.
Gửi địa chỉ tìm kiếm Google Maps tới Web Unlocker. Nó mở trang trong một trình duyệt thật từ quốc gia bạn chọn và trả về HTML đã render. Mỗi địa điểm nằm trong một thẻ riêng, nên một parser ngắn đọc được tên, xếp hạng, đánh giá, danh mục, địa chỉ, giờ mở cửa và tọa độ. Đoạn code ở trên làm đúng như vậy.
Gửi địa chỉ tìm kiếm Maps tới Web Unlocker bằng thư viện requests và đọc các địa điểm từ HTML. Tab Python ở trên là một script hoàn chỉnh, 37 dòng, đã được kiểm thử trên API thật.
Kết quả tìm kiếm và trang địa điểm là công khai và tải được mà không cần đăng nhập. Web Unlocker tải chúng giống như trình duyệt của một người dùng và trả về trang đó. Bạn thu thập gì và dùng ra sao là quyết định của bạn, vì vậy hãy đối chiếu với các quy định áp dụng cho dự án của bạn.
Khoảng 7 đến 11 địa điểm mỗi trang, và không lượt tìm nào vượt quá khoảng 60: Google dừng mọi danh sách ở đó, cả trong ứng dụng lẫn trong API. Với cả một thành phố, hãy tìm trên bản đồ theo từng ô. 25 ô trên Miami trả về 146 nha sĩ khác nhau với khoảng $0.02. Tab Thành phố trong đoạn code ở trên làm đúng như vậy.
Có. Hãy mở trang địa điểm từ kết quả tìm kiếm: trang đó có số điện thoại, website, plus code và liên kết đặt chỗ nếu địa điểm có. Đó là thêm một yêu cầu với cùng mức giá.
Google Maps hiển thị website của địa điểm, không phải email. Email nằm trên website đó, và Web Unlocker mở nó theo cùng cách: thêm một trang với cùng mức giá.
Hãy thu thập trang địa điểm: trang đó có phần tóm tắt đánh giá, số lượng xếp hạng ở từng mức sao, các chủ đề mọi người nhắc đến kèm số lượng, và những đánh giá hàng đầu với tác giả, số sao, ngày và toàn văn.
Web Unlocker trả về trang chứ không phải một bảng, nên không có gì bị cắt trước khi bạn thấy. Chuyển nó thành CSV chỉ cần vài dòng code, hoặc một prompt: đưa trang cho Claude cùng Gologin scraping skill và yêu cầu một file CSV.
Có. Đặt một quốc gia, một vùng hoặc một thành phố, và trang sẽ tải từ đó. Kết quả theo nơi phát ra lượt tìm kiếm, nên cùng một truy vấn ở Miami và ở Tokyo trả về các địa điểm khác nhau.
5 đến 30 giây trong các bài kiểm thử của chúng tôi: bản đồ tải trong một trình duyệt thật trước khi trang được trả về.
HTML đã render, Markdown, văn bản thuần và JSON kèm metadata của trang.
Dưới $1 cho 1.000 trang, và cùng một mức giá cho mọi trang, nên 1.000 địa điểm kèm số điện thoại và website có giá khoảng $1.10. Trang tải không được thì không tốn phí. Các gói bắt đầu từ $49 mỗi tháng cho 50.000 yêu cầu.
Có, để bắt đầu: Web Unlocker đi kèm 1.000 yêu cầu miễn phí, đủ cho khoảng 1.000 trang tìm kiếm hoặc 7.000 địa điểm. Sau đó giá dưới $1 cho 1.000 trang.
Không. Web Unlocker chọn IP cho bạn, ở hơn 195 quốc gia.
Tùy vào nhu cầu của bạn. Apify và Outscraper bán các bảng dữ liệu làm sẵn theo từng địa điểm. Web Unlocker trả về toàn bộ trang Maps từ bất kỳ thành phố nào với một mức giá cho mỗi trang, nên bạn giữ mọi trường và tự phân tích theo cách của mình.
Hãy cho chúng tôi biết đôi nét về đội ngũ của bạn để nhận: