欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

如何批量调用google搜索API?

程序员文章站 2022-05-11 12:20:43
...

1. 需求

有这样一批关键字,都需要调用google搜索API来找到需要的链接。

array (size=380)
  0 => 
    array (size=3)
      0 => string '一兰拉面(涩谷店)' (length=23)
      1 => string 'Ichiran' (length=7)
      2 => string '' (length=0)
  1 => 
    array (size=3)
      0 => string '赤坂鳗鱼(新宿高岛屋店)' (length=36)
      1 => string '赤坂 ふきぬき' (length=19)
      2 => string '' (length=0)
  2 => 
    array (size=3)
      0 => string '大和寿司' (length=12)
      1 => string 'Daiwasushi' (length=10)
      2 => string '' (length=0)
  3 => 
    array (size=3)
      0 => string '伊豆荣 本店' (length=16)
      1 => string '' (length=0)
      2 => string '' (length=0)
  4 => 
    array (size=3)
      0 => string '不二家 (涩谷店)' (length=25)
      1 => string 'Fujiya' (length=6)
      2 => string '' (length=0)
  5 => 
    array (size=3)
      0 => string '面屋武藏 新宿店' (length=22)
      1 => string 'Menya musashi' (length=13)
      2 => string '' (length=0)
  ...

比如单条数据 0 => string '一兰拉面(涩谷店)'调用google搜索API后返回的结果:

array (size=3)
  0 => string 'http://tabelog.com/tw/tokyo/A1303/A130301/13166058/' (length=51)
  1 => string 'http://tabelog.com/tokyo/A1303/A130301/13001762/' (length=48)
  2 => string 'http://tabelog.com/cn/tokyo/A1303/A130301/13166058/dtlrvwlst/7326286/' (length=69)

此次调用的API地址也是我在SF找到的地址:

http://ajax.googleapis.com/ajax/services/search/web?q=site:tabelog.com:%20Gucci%E5%92%96%E5%95%A1%20&v=1.0&start=0&rsz=3

这里的?q=后面是要查询的关键字,&start=表示从0开始,&rsz=返回结果的尺寸为3条数据

2. 存在的问题

1) 如果用代码只查询一个关键字,结果能正常返回。但批量执行只返回3%,也就是100条数据里只返回了3条。
2) 如果有些关键字无法返回结果,那么换下一个关键字(同一个数组中),直到搜索出结果。

3. 实现

调用googleAPI搜索想要的URL我使用了PHP的cURL来实现。

4. 疑问

1) 有什么方法实现批量调用,从而让数据(380条)正常返回结果(正确姿势)?

回复内容:

1. 需求

有这样一批关键字,都需要调用google搜索API来找到需要的链接。

array (size=380)
  0 => 
    array (size=3)
      0 => string '一兰拉面(涩谷店)' (length=23)
      1 => string 'Ichiran' (length=7)
      2 => string '' (length=0)
  1 => 
    array (size=3)
      0 => string '赤坂鳗鱼(新宿高岛屋店)' (length=36)
      1 => string '赤坂 ふきぬき' (length=19)
      2 => string '' (length=0)
  2 => 
    array (size=3)
      0 => string '大和寿司' (length=12)
      1 => string 'Daiwasushi' (length=10)
      2 => string '' (length=0)
  3 => 
    array (size=3)
      0 => string '伊豆荣 本店' (length=16)
      1 => string '' (length=0)
      2 => string '' (length=0)
  4 => 
    array (size=3)
      0 => string '不二家 (涩谷店)' (length=25)
      1 => string 'Fujiya' (length=6)
      2 => string '' (length=0)
  5 => 
    array (size=3)
      0 => string '面屋武藏 新宿店' (length=22)
      1 => string 'Menya musashi' (length=13)
      2 => string '' (length=0)
  ...

比如单条数据 0 => string '一兰拉面(涩谷店)'调用google搜索API后返回的结果:

array (size=3)
  0 => string 'http://tabelog.com/tw/tokyo/A1303/A130301/13166058/' (length=51)
  1 => string 'http://tabelog.com/tokyo/A1303/A130301/13001762/' (length=48)
  2 => string 'http://tabelog.com/cn/tokyo/A1303/A130301/13166058/dtlrvwlst/7326286/' (length=69)

此次调用的API地址也是我在SF找到的地址:

http://ajax.googleapis.com/ajax/services/search/web?q=site:tabelog.com:%20Gucci%E5%92%96%E5%95%A1%20&v=1.0&start=0&rsz=3

这里的?q=后面是要查询的关键字,&start=表示从0开始,&rsz=返回结果的尺寸为3条数据

2. 存在的问题

1) 如果用代码只查询一个关键字,结果能正常返回。但批量执行只返回3%,也就是100条数据里只返回了3条。
2) 如果有些关键字无法返回结果,那么换下一个关键字(同一个数组中),直到搜索出结果。

3. 实现

调用googleAPI搜索想要的URL我使用了PHP的cURL来实现。

4. 疑问

1) 有什么方法实现批量调用,从而让数据(380条)正常返回结果(正确姿势)?

相关标签: php google-search