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

  • A+
所属分类:SEO好文章
本文信息本文由方法SEO顾问发表于2014-04-2515:32:28,共 2124 字,转载请注明:ZERO:SEO用途的PYTHON模块介绍与下载_【方法SEO顾问】

我差不多用了一年的时间,陆陆续续将一些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方法的原创文章,转载或引用请以超链接形式标明本文地址,否则会在SEO圈内公开此种不尊重版权的行为,谢谢合作!本文地址:https://seofangfa.com/seo-articles/zero-python-seo-tool.html
  • 转载请注明:ZERO:SEO用途的PYTHON模块介绍与下载_ 【方法SEO顾问】

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: