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

2018年2月7日11:29:15 发表评论

百度站长平台的关键词工具近期升级后,提供基于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. cookie = open('cookie.txt').read()
  17. site, url_reg = sys.argv[1:3]
  18. ctrs = []
  19. for p in range(1, 501):
  20. print p
  21. data = curl('http://zhanzhang.baidu.com/keywords/pagelist?site=http%%3A%%2F%%2F%s%%2F&range=yesterday&page=%d&pagesize=100' % (site, p))
  22. data = json.loads(data)
  23. if data['list']==[]:
  24. print 'end'
  25. break
  26. for i in data['list']:
  27. ctrs.append([i['url'], i['click_rate'], i['average_rank']])
  28. d = {}
  29. reg = re.compile(url_reg)
  30. for i in ctrs:
  31. url, ctr, rank = i
  32. rank = str(int(round(float(rank))))
  33. if reg.search(url):
  34. try:
  35. d[rank].append(float(ctr))
  36. except:
  37. d[rank] = [float(ctr)]
  38. print '排名位置\t点击率\t样本数'
  39. for i in range(1, 11):
  40. try:
  41. ctr = str(round(float(sum(d[str(i)])) / len(d[str(i)]) * 100, 2))
  42. sample = len(d[str(i)])
  43. print '%d\t%s%%\t%d' % (i, ctr, sample)
  44. except:
  45. print '%d\t-\t-' % i

复制代码

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

  • 我的微信
  • sophy105