本期文章讲两个知识点,一是把数据写入表格。二是通过api数据接口获取关键词在百度上的排名情形。
先来说如何把数据写入表格当中,用过采集软件的朋友,可能打仗过这么一种文件格式(.csv),这个格式在百度百科里面描述的名字叫“逗号分隔值”,但是从文件图标上来看,和excel表格是一样的,也便是说它也是支持office办公软件打开的。
通过它名字“逗号分隔值”,我们实在可能预测到,它是可以通过逗号进行分隔的,这个也是它的最大特点。详细来说便是当写入的内容中,有英文状态下的的逗号,就会以逗号分开,放入表格中的不同“列”中。

比如写入的内容是qwe,sdf
看到的效果便是下面这样~
当然,这个csv文件如果用记事本打开,还是显示qwe,sdf
它的用途是啥呢?
比拟上面两张图,记事本显示的是一行内容,而csv通过表格工具打开往后是显示一行两列。这样如果多类数据写入的话,就可以实现分列展示。后期须要数据运算处理,直接转化成表格的xls格式,非常方便。
第二个知识点,通过api接口获取关键词在百度搜索中的排名情形。
这里用的是站长工具的api数据接口,http://api.chinaz.com/ApiDetails/BaiduPcRanking
这个接口每天有500个的免费查询量,对付普通的网站的SEO查询是足够了。对付做网站优化,网络推广的朋友还有有一些用途的。
先看看它的API文档:
对付api对接,常见的便是get和post两种办法,本期的案例中两种都支持,那么对付都支持的我们就用相对大略的get办法。
下面我们开始详细的操作,新建一个csv文件,和新建***一样,直接用file.write命令。
Dim 路径="/sdcard/pictures/排名.csv"
file.Write (路径, "")
天生好csv往后,接下来是要对接api接口了,先去申请一个key,这个须要注册,这里如果你仅仅为了测试,直接用我的:
"c40fa0ee91ea4e2f8fbf303470806194"
每天500的免费量,很可能用的人多,一下子就没有了。这里建议大家自己申请,如果测试无法利用,可能便是这个缘故原由了。
我们以在百度上搜索“按键精灵安卓版教程”这个关键词为例,看看我在简书上发文章的页面的排名情形。为了能够有数据,这里我刻意找了一个有排名的页面来做案例。
Dim 路径="/sdcard/pictures/排名.csv"
Dim 路径1="/sdcard/pictures/未有排名.csv"
file.Write (路径, "")
file.Write (路径1, "")
Import "shanhai.lua"
Dim key="c40fa0ee91ea4e2f8fbf303470806194"
Dim 域名="www.jianshu.com"
Dim 关键词="按键精灵安卓版教程"
Dim m=ShanHai.GetHttp("http://apidata.chinaz.com/CallAPI/BaiduPcRanking?key="&key&"&domainName="&域名&"&keyword="&关键词)
TracePrint m
Dim a=Encode.JsonToTable(m)
If a["Reason"] = "成功" Then
If UBOUND(a["Result"]["Ranks"]) > -1 Then
If InStr(1, a["Result"]["Ranks"][1]["RankStr"], "1-")>0 Then
Dim x=split(a["Result"]["Ranks"][1]["RankStr"],"-")
Dim y=a["Result"]["Ranks"][1]["Title"]
TracePrint 关键词&"----"&y&"----"&"首页第"&x(1)&"位"
File.writeline(路径,1,关键词&","&y&","&"首页第"&x(1)&"位")
End If
Else
File.writeline(路径1,1,关键词)
End If
End If
有排名就可以看到如下效果:关键词+网站标题+百度排名情形
当然这里我还用其余一个csv文件,存储没有排名的关键词,留做备份之后着重优化的词语。
由于之前有多期教程讲过api对接以及返回值为json的提取办法,这里就不重新写了。
须要有几点把稳的地方:
一、我在测试时候,url.get命令当网址是拼接的时候,获取不到数据,以是选用了同样功能的山海命令。
二、这个案例中我只写了一个关键词的测试,如果是多个关键词的,可以循环获取。
三、利用脚本时,不能打开csv,否则无法写入数据到csv中,导致脚本报错。
四、这个api数据接口支持批量获取数据,自行研究下吧。
好了,本期内容就这些,以为文章还行麻烦点个赞。