我无法在Google自定义搜索API中获得100个结果

时间:2019-10-04 06:00:16

标签: javascript reactjs google-api google-custom-search

我无法在循环中获得查询的前100个结果。我试图通过更改起始参数值来获得下一个10个结果。但是我希望在循环中获得它。

 getResponse() {
    superagent.get('https://www.googleapis.com/customsearch/v1')
      .query({'q': this.search.current.value, 'cx': this.cx, 'gl': 'all', 'start': 1, 'num': 10, 'key': this.apiKey})

      .then((res) => {

        console.log('value of show', this.show)
        console.log('response', res)
        // let arr = res.body.items
        //   arr.map((value)=>{
        //      console.log('value', value)
        //      this.field =value
        //  })
        // this.field = arr
        this.setState({
          show: true,
          data: res.body.items || []
        })

      })
      .catch(err => {
        this.setState({
          show: false,
          data: []
        })
      })
  }

1 个答案:

答案 0 :(得分:0)

类似的情况可能是您的案例的一个很好的起点:

  getResponse() {
    const queries = [];
    let start = 1;

    while (start <= 100) {
      const query = superagent.get('https://www.googleapis.com/customsearch/v1')
      .query({'q': this.search.current.value, 'cx': this.cx, 'gl': 'all', 'start': start, 'num': 10, 'key': this.apiKey});
      queries.push(query);
      start += 10;
    }  
    Promise.all(queries)
      .then((responses) => {
        // responses will be an array of responses
        responses.forEach(function(res) {
          console.log('value of show', this.show)
          console.log('response', res)
          // let arr = res.body.items
          //   arr.map((value)=>{
          //      console.log('value', value)
          //      this.field =value
          //  })
          // this.field = arr
          this.setState({
            show: true,
            data: res.body.items || []
          })
        })
      })
      .catch(err => {
        this.setState({
          show: false,
          data: []
        })
      })
  }