我正在开发一个简单的PHP应用程序 商家名称, 商家地址 和商务电话来自用户,然后检查该商家是否列在Google中
还会将Google返回的商家名称,地址和电话与搜索字词进行比较。
结果我想显示Google中的信息是否准确,或者某些内容是否有所不同或缺失。与this site类似的东西
我尝试了什么:
我曾尝试使用phpQuery库抓取页面,但它不包含该部分(在下面的图片中圈出来)。
$buss_name = $_GET['business_name'];
$link = "https://www.google.com/search?q=" . urlencode($buss_name) . "&rct=j";
$resp_html = file_get_contents($link, false);
$resp_html = phpQuery::newDocumentHTML($resp_html);
echo $resp_html;
echo pq("div.kno-ecr-pt.kno-fb-ctx._hdf",$resp_html)->text();
原因是它是通过某种AJAX调用加载的。
我也通过谷歌尝试了这个网络服务
http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=don%20jayne%20&%20assoc
但这也不包括我要求的部分。
长话短说>>> 请告诉我,是否有任何API可用于检查Google上列出的商家?
答案 0 :(得分:1)
可能你不再需要这个了,但我会回复你的帖子,以备将来参考。
检查商家是否在Google上的方法之一是检查google places api(documentation)。您可以执行搜索,然后检查您要查找的业务的结果。像这样:
$params = array(
'query' => 'mindseo',
'key' => "XXXXXXXXXXXXXXXXXXX");
$service_url = 'https://maps.googleapis.com/maps/api/place/textsearch/json';
//do the request
$placesSearch = request( $service_url, $params );
//print the result
print_r($placesSearch);
//loop the results
if ( count( $placesSearch['results'] ) >= 1 ) {
$params = array(
'placeid' => $placesSearch['results'][0]['place_id'],
'key' => "AIzaSyAc73-uGCLLIuN3Bb2idOwRbLBzoaTmPHI");
$service_url = 'https://maps.googleapis.com/maps/api/place/details/json';
$placeData = request( $service_url, $params );
//echo the place data
echo '//Place ID#'.$params['placeid'].' DATA -----------------------';
print_r($placeData);
}
//function to make the request
function request( $googleApiUrl, $params) {
$dataOut = array();
$url = $googleApiUrl . '?' . http_build_query($params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$dataOut = json_decode(curl_exec($ch), true);
curl_close($ch);
return $dataOut;
}