SEO策略

关键词覆盖、索引量、排名、点击率、转化率

SEO用途的PYTHON模块介绍与下载

indiepop2017-06-14 13:17:560℃

   我差不多用了一年的时间,陆陆续续将一些SEO最常见的技术需求片段,写入了一个模块之中。目前为止,这个模块的完善程度,已经做到可以节省我日常的大部分代码量。

  比如最典型的例子,查排名。用python基础的实现,也要加载urllib模块先将关键词编码,再urllib2模块下载网页,re模块提取搜索结果,再遍历匹配想要的结果,最少也要十来行代码。

  进一步的,如果想要做到可以稳定查询、定制更多的功能,代码量就更多了。在我的模块中,达到了近百行的代码。一般情况下,没人可以接受查个关键词排名要写如此多的代码。

  但借助该模块,一切变得非常简单,加载模块后只需一行代码即可输出排名:

  # coding:utf-8

  from seoqx import *

  baidu_rank(‘招聘’, host=’.ganji.com’)

  模块的下载地址为:http://www.seoqx.com/seoqx.pyc

  为保证后续不再出现下载地址丢失的情况,我上传了一传到空间里,需要的朋友点此下载

  注意事项:需要先安装pycurl模块,该模块才能运作。此外适用的Python版本为2.7.3,对于其它版本可能会存在bug。

  以下为其具体介绍:

  # coding:utf-8

  from seoqx import *

  '''

  baidu_rank(kw, host=None, lp=None, rn=100, pn=0)

  查询百度关键词排名

  指定某个域名,或是精确到某个着陆页

  默认查询前100名,也可以通过设置rn, pn参数来遍历760个结果,或只查前10名

  若查询过程中出现验证码,会自动间隔10分钟再次尝试查询

  '''

  print baidu_rank('招聘', host='.ganji.com')

  # 输出: (8, 'http://bj.ganji.com/zhaopin/')

  print baidu_rank('招聘', lp='http://www.ganji.com/zhaopin/')

  # 输出: 47

  '''

  baidu_index(url)

  查询网页是否被百度收录

  输出1为被收录,0为没有收录

  若查询过程中出现验证码,会自动间隔10分钟再次尝试查询

  '''

  print baidu_index('http://bj.ganji.com/zhaopin/')

  # 输出: 1

  print baidu_index('http://bjbj.ganji.com/zhaopin/')

  # 输出: 0

  '''

  root_domain(url)

  通过URL获取根域名

  '''

  print root_domain('http://www.xxx.com.cn/')

  # 输出: xxx.com.cn

  '''

  date_range(start, end, only_monday=False, input_format='%y%m%d', output_format='%y%m%d')

  输出两个时间点之间的各个时间点,主要用于流量趋势分析等场景

  如果指定only_monday为True,仅输出为周一的时间点

  start, end可以接受字符串,也可以是数字

  '''

  print date_range(140227, 140305)

  # 输出: ['140227', '140228', '140301', '140302', '140303', '140304', '140305']

  print date_range('140227', '140305', only_monday=True, output_format='%Y-%m-%d')

  # 输出: ['2014-03-03']

  '''

  curl(url, **kwargs)

  下载网页,在保证多数功能可用的情况下,大幅简化了pycurl的使用

  默认情况下已做了一部分基础的防采集措施,如设置UserAgent

  **kwargs可接受setopt设置的参数

  '''

  print curl('http://www.baidu.com/')

  # 输出: 该网页的源代码

  print curl('http://www.baidu.com/', FOLLOWLOCATION=False)

  '''

  辅助用途的类,主要用于top-n的计算与排序

  class dict_plus(dict):

  def sort(self, reverse=True):

  return sorted(self.iteritems(), key=lambda d:d[1], reverse=reverse)

  def add(self, key, value=1):

  self[key] = self.get(key, 0) + value

  '''

  visits_log = '''www /1.htm 租房

  www /2.htm 招聘

  www /1.htm 租房'''

  kws = dict_plus()

  for line in visits_log.splitlines():

  host, url, kw = line.rstrip().split('\t', 2)

  kws.add(kw)

  for kw, v in kws.sort()[:2]:

  print kw, v

  '''

  输出:

  租房 2

  招聘 1

  '''

上一篇:谈SEO的原始数据分析

上一篇:SEO实践(1):开展SEO前的数据准备

文章下方广告位

网友评论