使用此Feed
我们可以了解谷歌目前的趋势。
但我需要获得前一天的趋势。当前趋势中的搜索字词会经常更改,因此我尝试在当天开始时获取前一天的趋势主题 但我不知道获得前一天趋势的网址?
任何人都可以解决这个问题吗?感谢。
答案 0 :(得分:3)
你可以从这里试试:http://www.fromzerotoseo.com/scraping-google-hot-trends/
<?php
// Scraping New Year’s Eve
$result = getPage(
'[proxy IP]:[port]',
'http://www.google.com/trends/hottrends?sa=X&date=2008-12-31',
'http://www.google.com/trends/hottrends?sa=X',
'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8',
1,
5);
if (empty($result['ERR'])) {
preg_match_all(
'(<td class=num>\d+\.</td>.*<td><a href="(.*)">(.*)</a></td>)siU',
$result['EXE'], $matches);
// some URL tuning here…
for ($i = 0; $i < count($matches[1]); $i++) {
$matches[1][$i] = 'http://www.google.com' . $matches[1][$i];
}
// Job's done!
// $matches[1] array contains all URLs, and
// $matches[2] array contains all anchors
} else {
// WTF? Captcha or network problems?
// ...
}
?>
答案 1 :(得分:1)
我知道这是一个老话题,但是我创建并最近更新了该库:
https://github.com/gabrielfs7/google-trends
它支持按地区,随时间变化的兴趣,相关主题和查询进行搜索,并且不需要使用Google帐户即可。
示例:
$searchFilter = (new GSoares\GoogleTrends\Search\SearchFilter())
->withCategory(0) //All categories
->withSearchTerm('hair')
->withLocation('US')
->withinInterval(
new DateTimeImmutable('now -7 days'),
new DateTimeImmutable('now')
)
->withLanguage('en-US')
->considerWebSearch()
# ->considerImageSearch() // Consider only image search
# ->considerNewsSearch() // Consider only news search
# ->considerYoutubeSearch() // Consider only youtube search
# ->considerGoogleShoppingSearch() // Consider only Google Shopping search
->withTopMetrics()
->withRisingMetrics();
$result = (new GSoares\GoogleTrends\Search\RelatedQueriesSearch())
->search($searchFilter)
->jsonSerialize();
响应示例:
{
"searchUrl":"http://www.google.com/trends/...",
"totalResults":2,
"results":[
{
"term":"hair salon",
"ranking":100,
"hasData": true,
"searchUrl":"http://trends.google.com/..."
},
{
"term":"short hair",
"ranking":85,
"hasData": true,
"searchUrl":"http://trends.google.com/..."
}
]
}
可以将响应作为JSON或PHP对象获得。该代码100%受测试覆盖,并支持PHP7.2 +。
希望它可以帮助仍在搜索此内容的人。
答案 2 :(得分:0)
接受的答案不再有效。经过大量搜索,我终于找到了一个有效的PHP api to get google trends。
有了这个,你可以在一段时间内从谷歌趋势中寻找图形,区域和相关查询,这样:
$gs=new GSession($guser, $gpass);
$gs->authenticate();
$gt=new GTrends($gs, 'es');
$gt->addTerm('something1')->addTerm('something2')->setTime('2017-04-01 2017-04-19');
$gt->getGraph('csv'));
修改:图书馆不再免费,费用为28欧元。