文档章节

JSON 之 SuperObject(16): 实例 - 解析 Google 关键字搜索排名

涂孟超
 涂孟超
发布于 2014/09/26 15:38
字数 335
阅读 5
收藏 0
点赞 0
评论 0

同上例类似, 通过 'http://clients1.google.cn/complete/search?&q=' + "关键字" 可以获取 Google 的关键字搜索排名.

我用 Delphi 为关键字得到的结果是:
window.google.ac.h(
  ["Delphi",[
      ["delphi 教程", "375,000 结果", "0"],
      ["delphi盒子", "74,900 结果", "1"],
      ["delphi 下载", "1,580,000 结果", "2"],
      ["delphi7 下载", "1,600,000 结果", "3"],
      ["delphi是什么", "497,000 结果", "4"],
      ["delphi 字符串函数", "352,000 结果", "5"],
      ["delphi7 序列号", "302,000 结果", "6"],
      ["delphi2009下载", "20,600 结果", "7"],
      ["delphi7", "1,330,000 结果","8"],
      ["delphi2009正式版下载", "5,710 结果", "9"]
    ]
  ]
)

 
 
 
 
 

 

 

  

上面结果以 window.google.ac.h(...) 的形式给出, 下面的操作关键就是给 ISuperObject 一个名为 "window.google.ac.h" 的方法, 并指向自定义的过程, 并在过程中完成解析.

运行效果图:


代码文件:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses MsXML, SuperObject;

function ToUTF8Encode(str: string): string;
var
  b: Byte;
begin
  for b in BytesOf(UTF8Encode(str)) do
    Result := Format('%s%s%.2x', [Result, '%', b]);
end;

procedure Proc(const This, Params: ISuperObject; var Result: ISuperObject);
var
  jo: ISuperObject;
begin
  Form1.Memo1.Clear;
  for jo in Params['1'] do with Form1.Memo1.Lines do
    Form1.Memo1.Lines.Add(jo.format('%2%: %0% - %1%'));
end;

procedure TForm1.Button1Click(Sender: TObject);
const
  u = 'http://clients1.google.cn/complete/search?&q=';
var
  jo: ISuperObject;
  req: IXMLHTTPRequest;
  url: WideString;
begin
  jo := SO;
  jo.M['window.google.ac.h'] := @Proc;

  url := u + ToUTF8Encode(Edit1.Text);

  req := CoXMLHTTP.Create;
  req.open('Get', url, False, EmptyParam, EmptyParam);
  req.send(EmptyParam);

  jo[req.responseText];
end;

end.

 
 
 
 
 

 

 

  

© 著作权归作者所有

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
11 月全球数据库排名:PostgreSQL 一路高涨

DB-Engines 发布了 2017 年 11 月份的数据库排名。排前 20 名的数据库中,仅排名在第 15 位的 Splunk 和第 16 位的 HBase ,位置出现了互调,其他数据库排名未变。 与上月相比,排名前三的 ...

王练 ⋅ 2017/11/03 ⋅ 19

DB-Engines 5 月数据库排名 Oracle、MySQL 暴跌

DB-Engines 发布了 2017 年 5 月份的数据库排名。纵观本月排行榜,排名前 20 的数据库中除了 Aplunk 超越 FileMaker 成为第 16 名外,其他排名均无变化。 前 20 名排名情况: 完整排名请看这...

两味真火 ⋅ 2017/05/05 ⋅ 18

DB-Engines年度数据库 MongoDB二度蝉联

  【IT168 资讯】昨日,DB-Engines公布了2014年年度最受欢迎数据库管理系统,MongoDB 以72.7的总分二度蝉联冠军宝座。   自从公布此榜单两年以来,MongoDB已经二度成为最受欢迎的NoSQL数...

it168网站 ⋅ 2015/01/08 ⋅ 0

2018 年 5 月全球数据库排名:PostgreSQL 有所回升

DB-Engines 发布了 2018 年 5 月份的数据库排名,排名前三的依然是 Oracle、MySQL 和 Microsoft SQL Server 。 前 20 名的数据库中,本月排名出现上升的有 Redis,从第 9 上升到第 7。 Post...

周其 ⋅ 05/02 ⋅ 23

DB-Engines 9 月全球数据库排名,Oracle 跌势明显

DB-Engines 发布了 2017 年 9 月份的数据库排名。 本月排名前 20 名中,仅排名在第 19 位的 Hive 和第 20 位的 SAP HANA 和上个月对比,位置进行了互调,其他数据库的排名均没有变化。 完整排...

王练 ⋅ 2017/09/04 ⋅ 15

DB-Engines:2016年10月份全球数据库排名

DB-Engines 最近发布了 2016年10月份的数据库排名。 2016 年 10 月排行榜中排名前三的是:Oracle,MySQL 和 Microsoft SQL Server。Oracle虽然长期霸占首位,但得分却呈下降趋势,特别是与去...

王练 ⋅ 2016/10/31 ⋅ 19

12 月全球数据库排名:PostgreSQL 稳步上升

DB-Engines 发布了 2017 年 12 月份的数据库排名。排前 20 名的数据库中,Oracle 稳居第一,排名在第 9 名的 Cassandra 赶超排在第 8 名的 Redis,第 14 名的 SAP Adaptive Server 赶超第 13...

周其 ⋅ 2017/12/05 ⋅ 18

围观热门 Linux "区域&关键词"

当今世界,几乎每个很“火”的技术都直接或间接地和 Linux 有关,神马云计算、DVR、Android 智能手机了……不一而足。 这么多和 Linux 相关的技术都火了,我们就好奇,Linux 在这个地球的哪里...

随影求是 ⋅ 2012/03/21 ⋅ 13

DB-Engines:2017 年 2 月份全球数据库排名

DB-Engines 最近发布了 2017 年 2 月份的数据库排名。 前十名中,Oracle,MySQL 和 Microsoft SQL Server 仍占据前三名,Oracle 虽然长期霸占首位,但得分却呈下降趋势,与 1 月相比少了 12...

凝小紫 ⋅ 2017/02/04 ⋅ 14

2016 年排名 Top 100 的 Java 类库

我们分析了GitHub中47,251个依赖,从中找出了排名前一百的Java类库,让我们看看谁在前面,谁在后面。 我们在漫长的周末的消遣方式就是浏览GitHub并且搜索流行的Java类库。我们决定把其中的乐...

oschina ⋅ 2016/05/23 ⋅ 23

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Cloud相关项目

Spring Cloud Config 配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。 Spring Cloud Bus 事件、消息总线,用于在集群(例如,配...

明理萝 ⋅ 29分钟前 ⋅ 1

更新队友POM文件后报错

打开报错的地方的pom及其引用方法所在文件的pom,观察其版本号是否一致,不一致进行更改

森火 ⋅ 35分钟前 ⋅ 0

IDEA使用sonarLint

一、IDEA如何安装SonarLint插件 1.打开 Idea 2.点击【File】 3.点击【Settings】 4.点击【Plugins】 5.在搜索栏中输入“sonarlint”关键字 6.点击【Install】进行安装 7.重启Idea 二、IDEA如...

开源中国成都区源花 ⋅ 40分钟前 ⋅ 0

Succinct Data Structure

作者:唐刘 最近看了一篇论文 SuRF: Practical Range Query Filtering with Fast Succinct Tries,里面提到使用一种新的数据结构 Succinct Range Filter(SuRF) 替换掉了 RocksDB 默认的 Bloo...

TiDB ⋅ 41分钟前 ⋅ 0

Java进阶之内存模型介绍

Java进阶之内存模型介绍 前言 不管在什么编程语言里面,读取和写入都是我们程序最普遍的操作,在单线程的程序里面我们可能不关注线程的读写问题,但是一旦到多线程的环境下,读和写就会变得非...

九劫散仙 ⋅ 42分钟前 ⋅ 0

在windows上搭建一个ftp服务器

一、关于ftp FTP 是File Transfer Protocol的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序。基于不同的操作系统有不同的FTP应用程序...

zctzl ⋅ 46分钟前 ⋅ 0

JDK8 排序

import java.util.Collections;import java.util.List;import java.util.ArrayList;import java.util.Comparator; public class JavaTest { public static void main(String......

Jeam_ ⋅ 56分钟前 ⋅ 0

api管理平台汇总

swagger crapApi RAP xxl-api apidoc

facula ⋅ 57分钟前 ⋅ 0

Java 11 快要来了,编译 & 运行一个命令搞定!

Java 11 马上要来了,原定于 9 月发布,还有不到 3 个月了,敬请期待更多新功能被加入到 11 当中,本文本讲的是 JEP 330 这个新特性。 化繁为简,一个命令编译运行源代码 看下面的代码。 //...

Java技术栈 ⋅ 59分钟前 ⋅ 0

谷歌运营了一年多的无人出租车,得出了四条宝贵的经验

简评:并不是谷歌运营,不过国内对 Waymo 不敏感,就标题党了一下请多谅解。另外网友对于无人出租车是认可的,但是觉得如果价格没有优势,还是回去乘坐人类驾驶的汽车,毕竟这是人家的经济来...

极光推送 ⋅ 59分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部