本期文章讲两个知识点,一是把数据写入表格。二是通过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文件,和新建txt一样,直接用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数据接口支持批量获取数据,自行研究下吧。
好了,本期内容就这些,
网友评论