百度站长平台的关键词工具近期升级后,提供基于URL的点击率数据,且提供最多50000条,可以用来做比之前多得多的事情。
比如关键之一,我们可以先了解到每类页面原来的点击率是多少,然后再去修改description,看修改后点击率是否提升、提升多少。这样点击率这个影响SEO流量的因素可以变得比以前可控得多。
这是随便找了一个网站上一类页面,计算出来的点击率数据:
排名位置 点击率 样本数
1 33.22% 1659
2 17.99% 3379
3 14.07% 4040
4 10.73% 5495
5 8.57% 6534
6 7.08% 6775
7 6.23% 5560
8 6.17% 3631
9 6.6% 2315
10 11.54% 1079
做这样的数据,需要先把站长平台上尽多的数据搞出来,然后再将同类页面的汇总计算。
附上Python代码:
- # coding:utf-8
- import sys
- import pycurl
- import StringIO
- import json
- import re
- def curl(url):
- s = StringIO.StringIO()
- c = pycurl.Curl()
- c.setopt(pycurl.URL, url)
- c.setopt(pycurl.COOKIE, cookie)
- c.setopt(pycurl.WRITEFUNCTION, s.write)
- c.perform()
- c.close()
- return s.getvalue()
-
- cookie = open('cookie.txt').read()
- site, url_reg = sys.argv[1:3]
- ctrs = []
- for p in range(1, 501):
- print p
- data = curl('http://zhanzhang.baidu.com/keywords/pagelist?site=http%%3A%%2F%%2F%s%%2F&range=yesterday&page=%d&pagesize=100' % (site, p))
- data = json.loads(data)
- if data['list']==[]:
- print 'end'
- break
- for i in data['list']:
- ctrs.append([i['url'], i['click_rate'], i['average_rank']])
- d = {}
- reg = re.compile(url_reg)
- for i in ctrs:
- url, ctr, rank = i
- rank = str(int(round(float(rank))))
- if reg.search(url):
- try:
- d[rank].append(float(ctr))
- except:
- d[rank] = [float(ctr)]
- print '排名位置\t点击率\t样本数'
- for i in range(1, 11):
- try:
- ctr = str(round(float(sum(d[str(i)])) / len(d[str(i)]) * 100, 2))
- sample = len(d[str(i)])
- print '%d\t%s%%\t%d' % (i, ctr, sample)
- except:
- print '%d\t-\t-' % i
复制代码
运行方式:
首先需要安装python的pycurl第三方模块
运行前用浏览器访问百度站长平台,获取cookie,填入脚本文件夹下的cookie.txt
执行:python 脚本文件 域名 URL正则规则
如:python ctr.py www.seoqx.com /post/ |