网站地图    收藏   

主页 > 前端 > 网站SEO >

Python3脚本取百度站长平台外链数据分析 - 搜索优

来源:自学PHP网    时间:2015-04-15 10:58 作者: 阅读:

[导读] 为了对百度站长工具外链工具中查询的外链数据进行分析,特意写了个Python的脚本,通过直接get站长平台的数据,将所有数据保存进行分析后导出站内被链接页面+次数,外链根域+该域...

  为了对百度站长工具外链工具中查询的外链数据进行分析,特意写了个Python的脚本,通过直接get站长平台的数据,将所有数据保存进行分析后导出站内被链接页面+次数,外链根域+该域名下链接数量,锚文本+锚文本使用次数,当然了,既然可以获取到数据就可以对数据进行更多维度的分析,本脚本只进行以上三方面的分析,如有其它需求可自行扩展。

  下面贴出代码及说明:

  下面是脚本的第一个函数:

  说明:这一段函数主要取得百度站长平台外链工具中查询到的网站外链的所有数据并写入all_data这个列表中。

  #coding=utf-8

  import json#调用json模块

  import urllib.request#调用urllib.request模块

  def url_outerlink_anchor(url):#获取站长平台数据

  html1 = urllib.request.urlopen('http://zhanzhang.baidu.com/inbound/detail?d=%s&pagesize=100&page=1'%url).read().decode('utf-8')#打开第一个外链列表

  data1 = json.loads(html1)#转换为json格式

  outerlink_num = int(data1['count'])#获取外链总数

  range_page_num = outerlink_num//100+2#每页显示100条,外链总页面数

  range_page_num_list = range(1,range_page_num)#比如计算后range_page_num=4,则range_page_num_list = [1,2,3],每页显示100条外链则有3页

  #上边的计算主要是为了下边可以获取全部数据

  all_data = []

  for i in range_page_num_list:#for循环提取数据并追加到all_data列表中

  html=urllib.request.urlopen('http://zhanzhang.baidu.com/inbound/detail?d=%s&pagesize=100&page=%r'%(url,i)).read().decode('utf-8')

  data = json.loads(html)

  urls=[]

  for item in data['list']:

  urls.append([item['url'],item['outer_url'],item['anchor']])#提取url,外链,锚文本

  all_data.extend(urls)

  return all_data#返回所有数据列表all_data

  下面是脚本的第二个函数:

  说明:这一段函数主要获取网站被链接的所有页面及其被链接的次数并写入csv文件。

  def every_page_num(url):#获取每个页面被链接次数

  all_data = url_outerlink_anchor(url)#所有数据

  url_list = []

  for item in all_data:#取页面数据追加到url_list中

  url_list.append(item[0])

  quchong_url_list = {}.fromkeys(url_list).keys()#去重页面数据

  file = open('%s_every_page_num.csv'%url,'a+')#创建并打开csv文件

  for item in quchong_url_list:

  file.write(item+','+str(url_list.count(item))+'\n')#写入页面,页面被连接次数

  file.close()

  return True

  结合本函数获得的数据制作出饼图效果:

  

网站被链接页面及被链接次数

  结合以上数据可制定网站后期链接建设计划。

  下面是脚本的第三个函数:

  说明:这一段函数主要取得所有外链根域并统计根域下所有指向网站的链接数量并写入csv文件。

  def outer_url_num(url):#获取外链根域及每个域名下的链接数量

  all_data = url_outerlink_anchor(url)#所有数据

  outer_url_list = []

  for item in all_data:#取外链数据追加到outer_url_list中

  outer_url_list.append(item[1])

  genyu = []

  for link in outer_url_list:#取外链根域并追加到genyu中

  genyu.append(link[:link.index('/')])

  qu_chong_genyu = {}.fromkeys(genyu).keys()#genyu中数据去重,为了下边统计次数

  file = open('%s_outer_url_num.csv'%url,'a+')#创建并打开csv文件

  for item in qu_chong_genyu:#统计每个根域下链接次数并写入文件

  file.write(item+','+str(genyu.count(item))+'\n')

  file.close()

  return True

  结合本函数获得的数据制作出饼图效果:

  

网站外链根域及根域下链接数量

  结合以上数据可平衡外链的广泛度和来源域数量。

  下面是脚本的第四段函数:

  说明:这一段函数主要取得所有锚文字并统计锚文字链接次数并写入csv文件。

  def anchor_num(url):

  all_data = url_outerlink_anchor(url)

  anchor_list = []

  for item in all_data:

  anchor_list.append(item[2])

  quchong_anchor_list = {}.fromkeys(anchor_list).keys()

  file = open('%s_anchor_num.csv'%url,'a+')

  for item in quchong_anchor_list:

  file.write(item+','+str(anchor_list.count(item))+'\n')

  file.close()

  return True

  结合本函数获得的数据制作出饼图效果:

  

锚文本及锚文本链接数量

  结合以上数据主要对网站锚文本建设作出规划,当然了,如果继续对数据进行分析,统计到每个页面的锚文本即可定植全站的链接计划。

  下面是执行函数,修改url='http://www.****.com/'中的http://www.****.com/为自己的网站即可。

  if __name__ == '__main__':

  url='http://www.***.com/'

  url_outerlink_anchor(url)#执行第一个函数获取数据

  every_page_num(url)#执行第二个函数

  outer_url_num(url)#执行第三个函数

  anchor_num(url)#执行第四个函数

  以上就是本脚本所有内容,当然通过第一个函数获取数据后就可以随意进行多维度的分析了,以上只简单介绍了主要的三种,大家还可根据自己需要进行扩展。

  本文由老姜为可怜的磨料站(金刚砂http://www.moliao88.com/)推广所作,请尊重他人劳动成果,转载请注明出处。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论