`
hzywy
  • 浏览: 169032 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

解析百度输入框(在线查询)

阅读更多

   百度大家都会用,但是相信大家用百度的时候在输入框中随便输入什么内容,就会自动出现相关内容。有些人称之为自动补全,这个demo叫做在线查询比较贴近。

   解析百度在线查询方法:

private List<String> onlineSearch(String content) throws IOException {
        if (content == null)
            content = "java";
        String name = "a";
//        String path = "http://nssug.baidu.com/su?wd="
//                + URLEncoder.encode(singer, "UTF-8")
//                + "&prod=mp3&oe=utf-8&callback=undefined";
        String path="http://suggestion.baidu.com/su?wd="+URLEncoder.encode(content, "UTF-8")+"&p=3&cb=window.bdsug.sug";
        System.out.println("path = " + path);
        double fileLength = 0.0;
        File parent = new File("D:\\path");
        if (!parent.exists()) {
            parent.mkdirs();
        }
        File mp3File = new File(parent, name);
        System.out.println(mp3File);
        OutputStream os = null;
        InputStream is = null;
        URL url = new URL(path);
        HttpURLConnection con = (HttpURLConnection) url.openConnection();
        // 此处必须伪造referer,否则会自动返回首页.分析后,与cookie无关
        con.setRequestProperty("User-Agent",
                "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon;)");
        con.setRequestProperty("Accept-Encoding", "deflate");
        con.setRequestProperty("referer", "http://nssug.baidu.com");
        con.setDoInput(true);
        con.connect();
        if (con.getResponseCode() == HttpURLConnection.HTTP_OK) {
            is = con.getInputStream();
            byte[] b = new byte[1024 * 5];
            int length = -1;
            os = new FileOutputStream(mp3File);
            while ((length = is.read(b)) != -1) {
                os.write(b, 0, length);
            }

            os.flush();
        }

        BufferedReader reader = new BufferedReader(new InputStreamReader(
                new FileInputStream(mp3File), "gbk"));
        String tmp = reader.readLine();
        reader.close();
        Pattern p = Pattern.compile("\\(.*?\\)");
        Matcher m = p.matcher(tmp);
        String result="";
        while (m.find()) {
            result+=m.group();
        }
        result = result.replaceAll("\\(", "");
        result = result.replaceAll("\\)", "");
        Gson gson  = new Gson();
        HashMap object = (HashMap) gson.fromJson(result, Object.class);
       
        ArrayList list = (ArrayList) object.get("s");
        return list;
    }
测试类:

public static void main(String[] args) throws IOException {

        OnlineTest test = new OnlineTest();
       
         List<String> list = new ArrayList<String>();
         list= test.onlineSearch(null);
         for(int i=0;i<list.size();i++) {
             System.out.println(list.get(i));
         }
    }

分享到:
评论

相关推荐

    asp实现百度输入框效果

    - `style.css`:提供了输入框的样式定义,包括边框、背景色、字体、大小等,以模仿百度输入框的外观。 4. **JavaScript异步请求**: - `xmlhttp.js`:这可能是实现AJAX(Asynchronous JavaScript and XML)异步...

    百度输入框智能提示

    标题中的“百度输入框智能提示”指的是百度搜索框中的一项智能功能,它通过实时分析用户在输入框中键入的关键词,提供相关的搜索建议,帮助用户快速找到目标信息。这项功能是基于大数据和人工智能技术实现的,对于...

    仿百度输入框(在输入框输入时,会根据输入的内容模糊查询相关的做成下拉框显示在下面,供选择)

    综上所述,仿百度输入框功能的实现涉及到了前端的交互设计、JavaScript的事件处理、Ajax的异步通信、JSP的后端处理以及数据库的模糊查询等多方面的知识。正确地实现这一功能可以大大提高用户在搜索或输入时的体验。

    仿百度输入框智能提示

    在IT行业中,"仿百度输入框智能提示"是一种常见的前端技术实现,主要用于提高用户体验,特别是在搜索引擎、表单输入等场景中。它通过实时分析用户在输入框中输入的关键字,快速匹配并显示相关的建议内容,使得用户...

    仿百度输入框显示搜索内容

    在IT行业中,创建一个仿百度输入框显示搜索内容的功能是一项常见的前端开发任务,它涉及到用户界面(UI)设计和交互的优化,以提供良好的用户体验。这个功能的核心是文本框(TextBox),一个允许用户输入文本的HTML...

    自己写的百度输入框自动提示(C#,Ajax,JS版)

    标题中的“自己写的百度输入框自动提示(C#,Ajax,JS版)”指的是一个自定义的搜索输入框功能,模仿了百度搜索引擎的自动提示效果。这个功能通常在用户输入文字时,通过实时发送请求到服务器,服务器根据输入内容查询...

    仿百度输入框仿百度输入框

    在仿百度输入框的设计中,CSS可能会用到的关键技术有: 1. **Flexbox布局**:用于创建灵活、响应式的布局,可以方便地调整输入框的位置和大小。 2. **伪类选择器**:如`:hover`,`:focus`,用于实现鼠标悬停和获取...

    仿百度的输入框自动提示

    ### 仿百度输入框自动提示实现详解 在现代网页应用中,输入框自动提示功能已成为提升用户体验的关键元素之一。本文将深入探讨如何模仿百度搜索的输入框自动提示功能,通过JavaScript实现这一特性,以增强数据录入...

    jquery 仿百度输入框智能提示邮箱后缀名特效源码.zip

    《jQuery实现百度输入框智能提示邮箱后缀名特效解析》 在网页开发中,为了提升用户体验,经常会使用一些动态效果来增强表单输入的交互性。"jQuery 仿百度输入框智能提示邮箱后缀名特效"是这样一种技术,它能够帮助...

    仿百度,谷歌输入框自动提示功能---JSON版

    根据提供的信息,我们可以深入探讨如何实现仿百度、谷歌输入框自动提示功能的JSON版本,并针对其中涉及的关键技术点进行详细解析。 ### 一、JSON与XML的区别及应用场景 #### JSON (JavaScript Object Notation) - ...

    ASP输入框自动完成查询实例

    在"ASP输入框自动完成查询实例"中,我们关注的是如何实现一个类似于百度搜索框的功能,即用户在输入框中输入内容时,系统能够实时预测并提供与输入内容匹配的关键词供用户选择。 首先,ASP页面(如cncx.asp)通常...

    一个像百度百度搜索框,在用户输入时追加..

    6. **数据处理与展示**:接收到服务器返回的数据后,前端需要解析并动态插入到搜索提示列表中,同时处理可能的错误情况。 7. **浏览器兼容性**:“可以跨主流浏览器”意味着代码需要考虑多种浏览器的兼容性问题,...

    人工智能-项目实践-搜索引擎-react模拟百度搜索引擎

    在搜索引擎项目中,状态可能包括用户的查询字符串,而属性可以用来接收父组件传入的搜索结果。 二、JavaScript JavaScript是Web开发中的基础语言,用于实现页面的动态效果和交互。在这个项目中,我们将使用...

    仿照百度,google的输入框提示下拉列表

    描述中提到的“实现百度.GOOGLE等输入框里的相似查询显示”,意味着我们要创建一个系统,当用户在输入框中输入字符时,后台会即时查询数据库中以这些字符开头或包含这些字符的所有相似查询。这个功能通常基于AJAX...

    百度搜索框制作.zip

    下面我们将深入探讨这个主题,解析可能涉及的关键知识点。 首先,搜索框的制作通常包括前端界面设计和后端搜索逻辑两部分。前端设计主要关注用户体验,包括UI布局、样式、交互等方面。在这个项目中,搜索框可能采用...

    百度地图根据关键字搜索输入框提示热词

    【标题】:“百度地图根据关键字搜索输入框提示热词”是指在Android应用开发中,使用百度地图API实现用户在搜索框输入时,自动显示与关键字相关的热门搜索词或建议搜索词的功能。这一功能提升了用户体验,使得用户能...

    仿百度/Google搜索输入框提示JS代码(PHP+MySql数据库版)

    在构建Web应用时,搜索功能是必不可少的一部分,而仿百度/Google搜索输入框提示功能则可以极大地提升用户体验。这个功能通常被称为自动补全或搜索建议,它能够在用户输入搜索关键词时,实时显示与之相关的搜索建议。...

    ajax输入框提示集合

    3. **JSON数据交换**:虽然名称中有XML,但现代Ajax更常与JSON数据格式配合使用,因为JSON更轻量且易于解析。 4. **DOM操作**:接收到服务器返回的建议后,需要使用JavaScript动态修改DOM(Document Object Model)...

    H5百度地图逆地址查询功能,点击地图,获取当前点击位置的地址信息

    关于百度地图的逆地址查询,点击地图位置查找当前点击位置的经纬度,进行逆地址解析,当前点击位置的地址信息。(备注:需要手动填写自己的百度地图的key)

    让input框实现类似百度的搜索提示(基于jquery事件监听)

    此外,还需要设置`&lt;div&gt;`元素的`top`、`left`和`width`属性,确保提示框正好位于输入框下方。为了使提示内容看起来像一个可选择的下拉菜单,内部可能还包含一个`&lt;table&gt;`元素,其`cellspacing`和`cellpadding`属性...

Global site tag (gtag.js) - Google Analytics