ZERO:SEO用途的PYTHON模块介绍与下载_【X-blog】关注营销与推广的网站

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(2014年10月28日注:之前的下载链接不可用,刚问ZERO要的新链接。

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

注意事项:需要先安装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优化|SEM竞价|网站运营推广顾问 » ZERO:SEO用途的PYTHON模块介绍与下载

赞 (0)
分享到: 更多