serphouse / serphouse-php
使用Serphouse.com API客户端自动搜索搜索引擎(Google、Bing、Yahoo)的结果(serp api),并以结构化JSON格式检索。
Requires
- php: >=7.2
- ext-curl: *
- ext-json: *
- guzzlehttp/guzzle: ^7.8
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^8.5
This package is auto-updated.
Last update: 2024-09-10 10:36:50 UTC
README
SERPHouse API是您构建强大SEO软件之旅的起点。借助SERPHouse,您可以得到构建高效应用所需的所有数据,同时节省您的时间和预算。
本综合文档旨在为您提供与API交互以及充分发挥其潜力的所有所需的技术信息和产品信息。无论是将SERPHouse SERP API服务集成到您的应用程序中的软件开发人员,还是探索可能性的好奇用户,此API文档都将作为您的首选资源。
适用于SEO专业人士和数据科学家的海量SERP API。我们构建了可靠、准确且成本效益的解决方案,我们负责解决验证码、管理代理,以确保您获得可靠的结构化JSON数据。
此API支持Serphouse的标准REST API,接受/返回JSON请求。以下是API参考
入门
使用Serphouse API的PHP包装器很简单。按照以下步骤将其集成到您的项目中
文档
关于Serphouse API及其使用的文档可在https://docs.serphouse.com/找到
先决条件
- PHP >= 7.2
安装
您可以通过Composer在项目目录中运行以下命令来安装Serphouse PHP包
composer require serphouse/serphouse-php
使用
您需要在脚本中加载依赖项。
<?php require __DIR__ . '/vendor/autoload.php'; ?>
安装包后,您可以在代码中设置Serphouse客户端,如下所示
<?php use Serphouse\SERPHouseClient; $serphouse = new SERPHouseClient('YOUR_API_KEY');
将'YOUR_API_KEY'替换为您的实际Serphouse API密钥。
获取API密钥
您可以通过在https://app.serphouse.com/register注册来获取API密钥。此密钥将用于访问API。
示例
SERP API
1. SERP实时
$serphouse->serpApi->live([ 'data' => [ 'q' => 'apple', 'domain' => 'google.com', 'lang' => 'en', 'device' => 'desktop', 'serp_type' => 'web', 'loc' => 'Alba,Texas,United States', 'loc_id' => '1026201', 'verbatim' => '0', 'gfilter' => '0', 'page' => '1', 'num_result' => '10', ], ]);
如果您需要通过responseType HTML或Json获取响应,则可以使用以下示例
$serphouse->serpApi->live('DATA_ARRAY','responseType'); // default responseType is Json
2. SERP计划
$serphouse->serpApi->schedule([ "data" => [ [ "q" => "Coffee", "domain" => "google.com", "lang" => "en", "device" => "desktop", "serp_type" => "web", "loc" => "Alba,Texas,United States", "verbatim" => 0, "postback_url" => "Webhook_url", "pingback_url" => "Webhook_url", "page" => 1, "num_result" => 10 ] ] ]);
3. SERP检查
$serphouse->serpApi->check('SERP_ID');
4. SERP获取
$serphouse->serpApi->get('SERP_ID');
如果您需要通过responseType HTML或Json获取响应,则可以使用以下示例
$serphouse->serpApi->get('SERP_ID','responseType'); // default responseType is Json
域名列表
1. 获取域名列表
$serphouse->domains->list();
语言列表
1. 获取语言列表
$serphouse->languages->list();
如果您需要通过Google、Bing和Yahoo获取语言列表,则可以使用以下示例
$serphouse->languages->list(['type'=> 'bing']); // default type is google
位置列表
1. 获取位置列表
$serphouse->location->search(['q'=> 'texas']);
如果您需要通过Google、Bing和Yahoo获取位置列表,则可以使用以下示例
$serphouse->languages->search(['q'=> 'texas','type'=> 'bing']); // default type is google
账户信息
1. 获取账户信息
$serphouse->account->fetch();
趋势API
1. 趋势搜索
$serphouse->trends->search([ 'time_zone_offset' => '-330', 'keywords' => 'google,youtube', 'time' => 'now 1-d', 'property' => 'youtube', 'category' => '0', 'geo' => 'us', 'language_code' => 'en' ]);
2. 趋势计划
$serphouse->trends->schedule([ "data" => [ [ "time_zone_offset" => -330, "keywords" => "google", "time" => "now 1-d", "property" => "youtube", "category" => 0, "geo" => "us", "language_code" => "en", "postback_url" => "Webhook_url", "pingback_url" => "Webhook_url" ] ] ]);
3. 获取时区列表
$serphouse->trends->timeZoneList();
4. 获取类别列表
$serphouse->trends->categoryList();
5. 获取国家和州列表
$serphouse->trends->countryStateList();
6. 获取语言列表
$serphouse->trends->languageList();
7. 趋势检查
$serphouse->trends->check('TRENDS_ID');
8. 趋势获取
$serphouse->trends->get('TRENDS_ID');
响应
成功响应示例。
SERPHouse\Services\Handlers\Responses Object
(
[statusCode:SERPHouse\Services\Handlers\Responses:private] => 200
[response:SERPHouse\Services\Handlers\Responses:private] => {"status":"success","msg":"Completed","search_metadata":{"id":128078258,"status":"success","created_at":"2024-05-04T06:20:10.000000Z","processed_at":"2024-05-04 06:20:10"},"search_parameters":{"langauge_code":"en-US","geo":"US","keywords":"google,youtube","time_zone_offset":"-330","time":"now 1-d","category":0,"property":"youtube"},"results":{"TIMESERIES":[{"time":"1714716960","formattedTime":"May 3, 2024 at 11:46 AM","formattedAxisTime":"May 3 at 11:46 AM","value":[19,72],"hasData":[true,true],"formattedValue":["19","72"]}],"GEO_MAP":{"google":{"default":{"geoMapData":[{"geoCode":"US-VT","geoName":"Vermont","value":[100],"formattedValue":["100"],"maxValueIndex":0,"hasData":[true]}]}},"youtube":{"default":{"geoMapData":[{"geoCode":"US-NH","geoName":"New Hampshire","value":[100],"formattedValue":["100"],"maxValueIndex":0,"hasData":[true]}]}}},"RELATED_QUERIES":{"google":{"default":{"rankedList":[{"rankedKeyword":[{"query":"google link","value":100,"formattedValue":"100","hasData":true,"link":"/trends/explore?q=google+link&date=now+1-d&geo=US"}]},{"rankedKeyword":[{"query":"the man who killed google search","value":1650,"formattedValue":"+1,650%","link":"/trends/explore?q=the+man+who+killed+google+search&date=now+1-d&geo=US"}]}]}},"youtube":{"default":{"rankedList":[{"rankedKeyword":[{"query":"on youtube","value":100,"formattedValue":"100","hasData":true,"link":"/trends/explore?q=on+youtube&date=now+1-d&geo=US"}]},{"rankedKeyword":[{"query":"jayson tatum youtube channel","value":5300,"formattedValue":"Breakout","link":"/trends/explore?q=jayson+tatum+youtube+channel&date=now+1-d&geo=US"}]}]}}}}}
[errorMessage:SERPHouse\Services\Handlers\Responses:private] =>
)
验证错误响应示例。
SERPHouse\Services\Handlers\Responses Object
(
[statusCode:SERPHouse\Services\Handlers\Responses:private] => 400
[response:SERPHouse\Services\Handlers\Responses:private] => {"status":"error","msg":"validation_error","error":{"time_zone_offset":["The time zone offset field is required."]}}
[errorMessage:SERPHouse\Services\Handlers\Responses:private] => Client error: `POST https://api.serphouse.com/trends/search` resulted in a `400 Bad Request` response:
{"status":"error","msg":"validation_error","error":{"time_zone_offset":["The time zone offset field is required."]}}
)
您需要管理响应。
-
使用
getStatusCode()
函数获取响应状态码$response->getStatusCode()
-
使用
getResponse()
函数获取响应,您将获得JSON字符串$response->getResponse()
-
使用
getErrorMessage()
函数获取错误信息,您将得到 JSON 字符串$response->getErrorMessage()
异常类
SERPHouseNotFoundException
当请求的调用未找到时,会抛出此异常。
SERPHousePaymentRequiredException
当需要支付才能访问请求的调用时,会抛出此异常。
SERPHouseRateLimitExceededException
当 SERP House API 中 API 请求的速率限制超出时,会抛出此异常。有关速率限制的更多信息,请查看此 链接
SERPHouseServerErrorException
当发生内部服务器错误时,会抛出此异常。
SERPHouseUnauthorizedException
当请求未授权访问请求的调用或 API 密钥无效时,会抛出此异常。