您的位置:首页 > 编程语言 > Python开发

python 字符串一次替换多个字符

2012-11-29 13:59 465 查看
最近在用python给自己的seo工作提高效率和节省时间,发现python真的很不错,可以完成很多事情。

下面是我最近在用python为网站自动更新文章做了一个替换锚文本的工作,也是python 字符串一次替换多个字符的很好的应用。

主要的思路是: 一篇文章里有一些我需要做锚文本的字符,我的目的是把字符替换成链接的形式,自动给网站加外链,而且为了链接的多样性,

我用了几个候选的链接,让random随机让程序自己去选择,这个如果懂得SEO的朋友应该是清楚为什么要这么做的。

下面我主要说说用到的python程序把。希望以后大家碰到需要再一个字符串里替换多个字符有一个很好的了解。

我先定义了一个字典:字典key主要定义是需要替换的关键词,后面的列表则是

linkcontent = {'关键词1':['链接1(锚文本1)','链接2(锚文本2)'], '关键词2':['链接1(锚文本1)','链接2(锚文本2)'],

'关键词3':['链接1(锚文本1)','链接2(锚文本2)'], '关键词4':['链接1(锚文本1)','链接2(锚文本2)','.....',根据你的需要添加这个关键词替换锚文本的可能性

这样可以保证外链的多样性。]

......

}

定义方法

def multiple_replace(text, adict,num):
'''多次替换'''
rx = re.compile('|'.join(map(re.escape, adict)))

def one_xlat(match):
rnum = len(adict[match.group(0)])
sortid= random.choice(range(rnum))##类别随机
return adict[match.group(0)][sortid]

if num % 2 == 0:
textnum = 3
else:
textnum = 4

return rx.sub(one_xlat,text,textnum)
import re import random

调用: zcontent = multiple_replace(内容,linkcontent,指定的次数)

因为我这里是用的 for each循环 所以 for i in range(300):

zcontent = multiple_replace(内容,linkcontent,i) 我这样的话,就可以一半文章里面的内容生成3个连接,一半是4个。

你如果只是测试字符串替换功能的话,可以只保留内容和,linkcontent这2个参数,那个指定的次数就没必要了, 不知道大家有些理解。

有问题可以在下面的评论里提出来,大家要实现这个功能主要还是搞懂那个multiple_replace函数就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: