首页 » Python » ZERO:SEO用途的PYTHON模块介绍与下载

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

 

我差不多用了一年的时间,陆陆续续将一些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

”’

作者:zero

原文链接:ZERO:SEO用途的PYTHON模块介绍与下载,转载请注明来源!

0