gpt4 book ai didi

google-custom-search - 是否有 Google 自定义搜索休息 API 的工作示例?

转载 作者:行者123 更新时间:2023-12-04 20:08:28 26 4
gpt4 key购买 nike

我需要创建一个自动执行 Google 搜索的屏幕。
我知道 JavaScript 并且我正在努力让 GSE 工作。

我有一个搜索引擎和一个 API key 。
问题是 Google 的文档是循环的,即页面相互指向。
我没有可以开始研究的工作样本。

如果您知道工作示例,请提供帮助。

我读过的文件是:

  • cselement-devguide
  • introduction
  • 最佳答案

    我知道这是一个老问题,但这是我所做的,以使 API 结果的格式类似于 Google Site Search 过去提供的格式,因为它们正在结束付费帐户并且现在将有广告。 API 方式可以选择为每天超过 100 次的搜索付费,所以继续这样做,但必须仍然格式化结果,并使用现有的方式构建 css 以进行类似的样式设置。

    转到此页面的搜索表单很简单:

    <form action="search-results.htm" id="cse-search-box">
    <div>
    <input class="" name="q" type="text">
    <input class="" type="submit">
    </div>
    </form>

    然后是搜索结果页面:
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <title>JSON/Atom Custom Search API Example</title>
    <!--<link href="default.css" rel="stylesheet" type="text/css">-->
    <link href="google.css" rel="stylesheet" type="text/css">
    </head>
    <body>
    <div class="gsc-result-info" id="resInfo-0"></div>
    <hr/>
    <div id="googleContent"></div>

    <script>
    //Handler for response from google.
    function hndlr(response) {
    if (response.items == null) {
    //Sometimes there is a strange thing with the results where it says there are 34 results/4 pages, but when you click through to 3 then there is only 30, so page 4 is invalid now.
    //So if we get to the invalid one, send them back a page.
    window.location.replace("searchresults.htm?start=" + (start - 10) + "&q=" + query);
    return;
    }
    //Search results load time
    document.getElementById("resInfo-0").innerHTML = "About " + response.searchInformation.formattedTotalResults + " results (" + response.searchInformation.formattedSearchTime + " seconds)";
    //Clear the div first, CMS is inserting a space for some reason.
    document.getElementById("googleContent").innerHTML = "";
    //Loop through each item in search results
    for (var i = 0; i < response.items.length; i++) {
    var item = response.items[i];
    var content = "";

    content += "<div class='gs-webResult gs-result'>" +
    "<table class='gsc-table-result'><tbody><tr>";
    //Thumbnail image
    if (item.pagemap.cse_thumbnail != null)
    content += "<td class='gsc-table-cell-thumbnail gsc-thumbnail'><div class='gs-image-box gs-web-image-box gs-web-image-box-portrait'><a class='gs-image' href='" + item.link + "'>" +
    "<img class='gs-image' class = 'gs-image-box gs-web-image-box gs-web-image-box-portrait' src='" + item.pagemap.cse_thumbnail[0].src + "'></a></td>";
    //Link
    content += "<td><a class='gs-title' href='" + item.link + "'>" + item.htmlTitle + "</a><br/>";
    //File format for PDF, etc.
    if (item.fileFormat != null)
    content += "<div class='gs-fileFormat'><span class='gs-fileFormat'>File Format: </span><span class='gs-fileFormatType'>" + item.fileFormat + "</span></div>";
    //description text and URL text.
    content += item.htmlSnippet.replace('<br>','') + "<br/><div class='gs-bidi-start-align gs-visibleUrl gs-visibleUrl-long' dir='ltr' style='word-break:break-all;'>" + item.htmlFormattedUrl +"</div>" +
    "<br/></td></tr></tbody></table></div>";
    document.getElementById("googleContent").innerHTML += content;
    }
    //Page Controls
    var totalPages = Math.ceil(response.searchInformation.totalResults / 10);
    console.log(totalPages);
    var currentPage = Math.floor(start / 10 + 1);
    console.log(currentPage);
    var pageControls = "<div class='gsc-results'><div class='gsc-cursor-box gs-bidi-start-align' dir='ltr'><div class='gsc-cursor'>";
    //Page change controls, 10 max.
    for (var x = 1; x <= totalPages && x<=10; x++) {
    pageControls += "<div class='gsc-cursor-page";
    if (x === currentPage)
    pageControls += " gsc-cursor-current-page";
    var pageLinkStart = x * 10 - 9;
    pageControls+="'><a href='search-results.htm?start="+pageLinkStart+"&q="+query+"'>"+x+"</a></div>";
    }
    pageControls += "</div></div></div>";
    document.getElementById("googleContent").innerHTML += pageControls;
    }

    //Get search text from query string.
    var query = document.URL.substr(document.URL.indexOf("q=") + 2);
    var start = document.URL.substr(document.URL.indexOf("start=") + 6, 2);
    if (start === "1&" || document.URL.indexOf("start=") === -1)
    start = 1;

    //Load the script src dynamically to load script with query to call.
    // DOM: Create the script element
    var jsElm = document.createElement("script");
    // set the type attribute
    jsElm.type = "application/javascript";
    // make the script element load file
    jsElm.src = "https://www.googleapis.com/customsearch/v1?key=yourApikeyhere&cx=yoursearchengineidhere&start="+start+"&q=" +query +"&callback=hndlr";
    // finally insert the element to the body element in order to load the script
    document.body.appendChild(jsElm);
    </script>
    </body>
    </html>

    关于google-custom-search - 是否有 Google 自定义搜索休息 API 的工作示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22223146/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com