【问题标题】:Ajax Live Search QuestionsAjax 实时搜索问题
【发布时间】:2015-06-29 22:30:10
【问题描述】:

所以基本上这个问题已经被问过很多次了,但我找不到满足我需求的答案。基本上我发现了很多带有example.com/ajax/search?query=Thing之类的链接的网址

我有一个标题在工作中,我目前使用 W3schools XML 版本,但它根本不符合我的需要,因为我需要它基本上搜索 IMDB 以查找用户输入的任何内容,例如,一旦他们输入'辛普森一家然后会弹出所有带有名称的搜索结果,它是指向 IMDB 链接的可点击链接,例如http://www.imdb.com/title/tt0096697/,然后用我的网站 url 替换该 url 中的 imdb.com(以使其以某种方式响应) .

但我需要它以某种方式使用 AJAX/jQuery,以便它在 IMDB 上搜索,因此使用此 XML 文件方法不起作用。

带有 /ajax/search 的网站如何进行这种类型的 IMDB 搜索,这种搜索最近在 torrent 网站上使用很多。

这是我获取当前搜索代码的地方:Live search with PHP AJAX and XML

但正如我所说,它需要使用 Ajax 运行,进行实时搜索,并且基本上以某种方式在 IMDB 上抓取/搜索,然后将 imdb.com 更改为 mysite.com

更新: 我设法找到了这样的东西: http://pastebin.com/PAD5AXUK

这是 HTML:

<div class="main-nav-links hidden-sm hidden-xs">
            <form method="GET" action="http://www.imdb.com/find" accept-charset="UTF-8" id="quick-search" name="quick-search">
                <div id="quick-search-container">
                    <input id="quick-search-input" name="query" autocomplete="off" value="Quick search" type="search">
                    <div style="background-position: -160px 0px;" class="ajax-spinner"></div>
                </div>
            </form>
            <ul class="nav-links">
                <li> <a href="https://example.com"> Home </a> 
                </li>
                <li> <a href="https://example.com/browse"> Browse </a> 
                </li>
            </ul>
            <ul class="nav-links nav-link-guest">
                <li> <a class="login-nav-btn" href="javascript:void(0)"> Login </a> &nbsp;|&nbsp; <a class="register-nav-btn" href="javascript:void(0)"> Register </a> 
                </li>
            </ul>
        </div>

但它似乎根本不起作用

【问题讨论】:

    标签: javascript php jquery ajax


    【解决方案1】:

    你可以检查一下。 https://twitter.github.io/typeahead.js/ 问题会解决的

    【讨论】:

    • 看了一下,但似乎所有内容都是从数组或其他东西加载的,所以我看不出这有什么帮助
    • 检查这个库中的远程方法。
    【解决方案2】:

    至于 IMDB 的搜索,您将不得不使用类似 php curl 扩展程序从网站获取内容并使用 html 解析器库对其进行解析。

    对于实时搜索,您可以使用此 pushState() 函数更改 javascript 中的 url,如以下答案:Changing the url with javascript。然后您可以使用一些 jQuery 来更轻松地将 ajax get 请求发送到您自己的服务器,其中 php 脚本将处理对 IMDB 的请求(涉及

    $.get("/ajax?query=TMNT", function(data) { //handle the data in here } );

    然后在该回调函数中,您可以使用结果的内容更新您的页面。您甚至可以在本地进行一些处理,例如更改 IMDB 链接的 url。

    该过程类似于以下图表:

    User Enters Query (TMNT) -> 
    Ajax sends data to my own backend page (process.php) -> 
    process.php scrapes IMDB search query and parses it with html parser -> 
    outputs results which return to ajax function -> 
    ajax callback function places results in a DOM element
    

    【讨论】:

    • 所有这些都是一种非常缓慢且过于复杂的方法。这绝对是一种更快的方法。
    • @Kyubeh2435436,唯一更快的方法是直接使用 javascript ajax 调用 IMDB 服务器,但如果您打算将其发布给公众,CORS 不会让您这样做。除非 IMDB 网站有 API
    • @Kyubeh2435436 看起来在这里,他们使用自己的 API stackoverflow.com/questions/1966503/does-imdb-provide-an-api,您可能可以使用它,但它可能仍然有一个跨域块,用于除他们之外的其他网站跨度>
    猜你喜欢
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多