目录
纯粹的PHP中的谷歌地图抓取
良好的编码知识、浏览器模拟、代理和reCAPTCHA解算器是搜刮谷歌地图的必要条件。此外,如果你准备好处理谷歌可能对其动态内容进行的任何修改,这将会有所帮助。
最初,你需要通过浏览器仿真来模拟真实用户的行为。因此,使用 硒 或其他浏览器仿真器可能是一个有效的选择。
你必须使用 代理人 如果你想保护你的办公室/家庭IP地址,因此,你可以从其他用户的IP上请求网站。
即使有这一系列的工具,如果你有足够的使用率,谷歌可能会向你提出reCAPTCHA,并将其与你的一些IP绑定。你可以添加一个 reCAPTCHA解算器 如果你不想在遇到reCAPTCHA时改变IP。
除此之外,要为谷歌可能改变其内容做好准备。这可以通过进行日常测试来实现。
即使实现搜刮器可能需要一些时间,但它可以被建立和维护。要学习如何使用Python和Selenium刮取谷歌地图,请访问这个分步骤的教程。 How to Scrape Google Maps with Python and Selenium.
用Outscraper PHP包刮取谷歌地图
一个更强大的搜刮谷歌地图的方法是使用 Outscraper PHP库.它提供了方便的通道。 Outscraper API 从用PHP语言编写的应用程序,它允许你使用 Outscraper的服务 从你的代码中。
你可以先安装 该包裹 并在以下网站创建一个账户 Outscraper.
composer require outscraper/outscraper
要使用这些绑定,请使用Composer的 自动加载:
require_once('vendor/autoload.php');
手动安装
如果你不希望使用Composer,你可以下载 最新发布.然后,为了使用这些绑定,包括 init.php
file:
require_once('/path/to/outscraper-php/init.php');
初始化
通过导入类和添加你的秘密API密钥来初始化Outscraper客户端。你可以在以下网站上生成API密钥 个人资料页面.
$client = new OutscraperClient("SECRET_API_KEY");
使用实例
以下是如何通过使用搜索查询从谷歌地图上搜刮地方的例子。
# Search for businesses in specific locations:
$results = $client->google_maps_search_v2(['restaurants brooklyn usa'], limit: 20, language: 'en', region: 'us');
# Scrap Places by Two Queries
$results = $client->google_maps_search_v2(
['restaurants brooklyn usa', 'bars brooklyn usa'],
limit: 50, # limit of palces per each query
language: 'en',
region: 'US',
);
# Iterate over the results
foreach ($results as &$query_places) {
foreach ($query_places as &$place) {
print($place['query']);
print($place['name']);
print($place['phone']);
print($place['site']);
}
};
也可以通过使用地点标识来提取数据。
# Get data of the specific place by id
$results = $client.google_maps_search_v2(['ChIJrc9T9fpYwokRdvjYRHT8nI4'], language: 'en');
# Scrap Places by Place Ids
$results = $client->google_maps_search_v2(
["ChIJ8ccnM7dbwokRy-pTMsdgvS4", "ChIJN5X_gWdZwokRck9rk2guJ1M", "ChIJxWLy8DlawokR1jvfXUPSTUE"],
limit: 1, # limit of palces per each query
);
# Iterate over the results
foreach ($results as &$query_places) {
foreach ($query_places as &$place) {
print($place['query']);
print($place['place_id']);
}
};
常见问题
最常见的问题和答案
你可以通过使用Outscraper SDK刮取谷歌地图结果。指定搜索查询、语言和其他参数,并发送您的请求。
作曲家要求outscraper/outscraper
require_once('vendor/autoload.php')。
$client = new OutscraperClient("SECRET_API_KEY")。
# 搜索特定地点的企业。
$results = $client->google_maps_search_v2([' restaurants brooklyn usa'], limit: 20, language: 'en', region: 'us')。 #的废旧场所的两个查询
$results = $client->google_maps_search_v2(
['餐馆brooklyn usa', '酒吧brooklyn usa']。
限制:50,每个查询有#宫位限制。
语言:'en'。
地区:'美国'。
); # 遍历结果
foreach ($results as &$query_places) {
foreach ($query_places as &$place) {
print($place['query'])。
print($place['name'])。
print($place['phone']);
print($place['site'])。
}
};
刮取谷歌地图需要良好的编码知识、浏览器模拟、代理和 reCAPTCHA解算器。 此外,你也应该准备好应对谷歌可能对其动态内容做出的改变。
谷歌地图不允许搜刮。虽然,搜刮和提取公共数据是受美国宪法第一修正案保护的。
0 评论