做网络推广的朋友可能知道长尾词,也就是关键词的扩展词,今天在百度上搜索api接口的时候看到一个淘宝的商品关键词的扩展词接口。
http://suggest.taobao.com/sug?code=utf-8&q=商品关键字&callback=cb
因为是免费的接口,那就拿来写个脚本,试一下效果如何:
看了一下接口的形式,参数已经被写入到接口网址中了,可以直接用get获取。
先提取出来看看格式,当然对于get方式,还有一个简单的方法就是直接复制网址到浏览器里面,运行打开网址也是可以的。
看返回值格式是json,但是又感觉多了cb( ) ,用正则匹配简单提取处理一下,然后在提取里面想要的内容。
这里稍微讲一下,这个正则表达式。
首先来看一下整段内容:
cb({"result":[["电扇 台式","123507.58474403426"],["电扇家用","189269.83877199035"],["电扇 落地","178662.51393884892"],["电扇小","217246.06335985026"],["电扇宿舍 床上 学生","42896.32537188351"],["电扇灯","299337.5123540592"],["电扇手持","57536.23212172443"],["电扇制冷","21897.660492157924"],["电扇灯 餐厅 家用","44998.50050403226"],["电扇吊扇","32837.63664962642"]]})
提取括号内的内容,也就是 cb(要提取的内容),
看一下正则表达式:ShanHai.RegexFind(m,"cb%((.-)%)"),
在里面有效的表达式是cb%((.-)%),这个是怎么来的呢,是这样的,比如一段话,我想提取其中的一部分,会用括号包住要提取的部分,然后用.*代替。
举个例子,我要下面这段话的公众号名字。
原始内容:大家好,我是公众号3分钟学堂的主理人郭立员。
提取内容:大家好,我是公众号(.*)的主理人郭立员。
这个(.*)就代表了我要提取的内容,大家如果细心可能会发现,我源代码写的不是(.*),而是(.-),就这个案例来说都一样,点的意思是任意格式,*和-,还有一个+,这些是匹配的个数,放到一起就是(.*),任意格式任意个数,代表任何内容。
通过正则匹配以后,就得到了json内容,第一步就是转出表类型
dim tb = Encode.JsonToTable(a(0))
把json的一大堆内容,整理一下格式:
这个东西手动整理比较麻烦,借助一下工具,http://www.bejson.com/通过这个网址可以一键格式化。然后就可以提取json了,之前好几篇都讲到了,这里不细说了。
这是提取了一个,提取所有的话,用一个for循环。
为了方便,在把关键词单独用一个变量提出来,这样以后想用什么关键词,可以直接替换变量的值就行。
整理一下得到关键词,目前存在两个问题,一是关键词有空格,二是描述词都在后面,感觉语序有问题,比如 电扇 台式,应该是台式电扇。
好了,到这一步基本就完工了,后续可以把关键词写入文本。
这篇文章中的代码对大家可能用处不大,主要是一篇学习笔记,记录编写脚本的思路和操作过程。
网友评论