发现更大的SEO世界
 找回密码
 注册
搜索
»首页»SEO培训 SEO论坛 SEO交流 帖子
发新帖
ZERO,SEO执着爱好者    

通过百度站长平台的数据精确计算页面类型点击率

百度站长平台的关键词工具近期升级后,提供基于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代码:

  1. # coding:utf-8
  2. import sys
  3. import pycurl
  4. import StringIO
  5. import json
  6. import re

  7. def curl(url):
  8.         s = StringIO.StringIO()
  9.         c = pycurl.Curl()
  10.         c.setopt(pycurl.URL, url)
  11.         c.setopt(pycurl.COOKIE, cookie)
  12.         c.setopt(pycurl.WRITEFUNCTION, s.write)
  13.         c.perform()
  14.         c.close()
  15.         return s.getvalue()
  16.         
  17. cookie = open('cookie.txt').read()
  18. site, url_reg = sys.argv[1:3]

  19. ctrs = []
  20. for p in range(1, 501):
  21.         print p
  22.         data = curl('http://zhanzhang.baidu.com/keywords/pagelist?site=http%%3A%%2F%%2F%s%%2F&range=yesterday&page=%d&pagesize=100' % (site, p))
  23.         data = json.loads(data)
  24.         if data['list']==[]:
  25.                 print 'end'
  26.                 break
  27.         for i in data['list']:
  28.                 ctrs.append([i['url'], i['click_rate'], i['average_rank']])

  29. d = {}
  30. reg = re.compile(url_reg)
  31. for i in ctrs:
  32.         url, ctr, rank = i
  33.         rank = str(int(round(float(rank))))
  34.         if reg.search(url):
  35.                 try:
  36.                         d[rank].append(float(ctr))
  37.                 except:
  38.                         d[rank] = [float(ctr)]

  39. print '排名位置\t点击率\t样本数'
  40. for i in range(1, 11):
  41.         try:
  42.                 ctr = str(round(float(sum(d[str(i)])) / len(d[str(i)]) * 100, 2))
  43.                 sample = len(d[str(i)])
  44.                 print '%d\t%s%%\t%d' % (i, ctr, sample)
  45.         except:
  46.                 print '%d\t-\t-' % i
复制代码


运行方式:
首先需要安装python的pycurl第三方模块
运行前用浏览器访问百度站长平台,获取cookie,填入脚本文件夹下的cookie.txt
执行:python 脚本文件 域名 URL正则规则
如:python ctr.py www.seoqx.com /post/

评分

参与人数 2赞同 +24 收起 理由
老狼 + 20 推荐及点击率上非常有用
姜姜 + 4 很给力!

查看全部评分

发表于 2015-3-26 12:51:47 |只看大图
回复 收藏
wangpeng,请到个人资料页面设置个人签名    

老大给力

评分

参与人数 1赞同 +4 收起 理由
yinshuiping + 4 很给力!

查看全部评分

发表于 2015-3-26 13:13:30
回复 收藏
chulai1,请到个人资料页面设置个人签名    

这就是传说中的AB测试吧,发现这些用E语言也可以做到,我已经放弃了python了。

草根站长还是学习PHP,更有用。多谢提供思路。
发表于 2015-3-27 11:06:11
回复 收藏
ZERO,SEO执着爱好者    

chulai1 发表于 2015-3-27 03:06
这就是传说中的AB测试吧,发现这些用E语言也可以做到,我已经放弃了python了。

草根站长还是学习PHP,更有 ...

这只是最基础的获取原始数据,当然其他语言总能办到Python能办到的事,但对于小脚本仅有Python和Ruby两款还算主流的语言是实现起来最快捷的。
 楼主| 发表于 2015-3-27 11:48:42
回复 收藏
ZERO,SEO执着爱好者    

chulai1 发表于 2015-3-27 03:06
这就是传说中的AB测试吧,发现这些用E语言也可以做到,我已经放弃了python了。

草根站长还是学习PHP,更有 ...

这只是最基础的获取原始数据,当然其他语言总能办到Python能办到的事,但对于小脚本仅有Python和Ruby两款还算主流的语言是实现起来最快捷的。
 楼主| 发表于 2015-3-27 11:48:46
回复 收藏
yinshuiping,只要努力付出就会成功    

发表于 2015-4-21 10:50:34
回复 收藏
道哥,www.seodug.com    

额,加起来119%了。。。
发表于 2015-5-13 15:51:27
回复 收藏
ZERO,SEO执着爱好者    

道哥 发表于 2015-5-13 07:51
额,加起来119%了。。。

结果会被点击多个啊。。。
 楼主| 发表于 2015-5-14 14:34:36
回复 收藏
大苏,学习seo之路还很长    

site=http%%3A%%2F%%2F%s%%2F&range=yesterday&page=%d&pagesize=100' % (site, p))  
以上yesterday 改成week可以查一周的,改成month 可以查一个月的
发表于 2015-5-21 13:34:14
回复 收藏
快速回复 返回顶部 返回列表