当我们发布文章的时候,希望能够给网站中的一些关键词自动的添加内链,这个在一些cms和博客程序里面是有插件实现对应的功能的。但是如果恰好你的博客程序或cms程序没有这个功能的时候怎么办呢?
方法无外乎两种,一种就是人工添加,另外一种就是通过程序来实现啦。
今天在这里给大家分享一下,如果在发布之前利用Python自动给文章添加关键词的内外联。
步骤一 首先我们得实现准备好关键词和对应的链接,这个可以如果会Python的童鞋肯定就是可以从文件或数据库里面去读取啦。然后就将它们组合成字典的形式,类似下面这样。
keyword_maps = {'央视网' : 'http://www.yangshi.com' , '卫星' : 'http://www.weixing.com' , '国际商业' : 'http://www.guojishangye.com' , '物联网' : 'http://www.wulianwang.com' , '星座' : 'http://www.xingzuo.com' }
步骤二 接下来就是要把这些要添加锚文本的关键词组合成正则表达式。
anchor_re = re.compile(rf"({'|' .join(keyword_maps.keys())} )" )
为什么用正则表达式呢?因为正则表达式书写简单,而且速度很快。如果你用for循环的话,估计是效率就很差了。因为for循环需要两次迭代才行。
步骤三 利用正则表达式找出文章中都包含哪些关键词,并利用集合去重。
# 这里文章内容 text = """央视网消息:中国国际商业航天高峰论坛10月19日在湖北武汉举行。 记者从论坛上了解到,我国正在建设的首个卫星物联网——“行云工程”进展顺利, 预计将于2023年前后建设完成由百余颗卫星组成的“物联网星座”。 目前第一阶段建设任务已全面完成。""" include_word = set(anchor_re.findall(text))
步骤四 利用循环遍历找出来的关键词,然后用正则将关键词替换成a标签链接即可。
for kw in include_word: link = keyword_maps.get(kw) text = re.sub(rf'({kw} )' , rf'{link} ">\g<1>', text, count=1 )
效果如下:
这里的话只是首次出现的时候进行替换,如果想要全部替换那么把count=1
这个参数删除掉就好了
完整代码 # -*- coding: utf-8 -*- import re text = """央视网消息:中国国际商业航天高峰论坛10月19日在湖北武汉举行。 记者从论坛上了解到,我国正在建设的首个卫星物联网——“行云工程”进展顺利, 预计将于2023年前后建设完成由百余颗卫星组成的“物联网星座”。 目前第一阶段建设任务已全面完成。""" keyword_maps = {'央视网' : 'http://www.yangshi.com' , '卫星' : 'http://www.weixing.com' ,
'国际商业' : 'http://www.guojishangye.com' , '物联网' : 'http://www.wulianwang.com' , '星座' : 'http://www.xingzuo.com' } anchor_re = re.compile(rf"({'|' .join(keyword_maps.keys())} )" ) include_word = set(anchor_re.findall(text)) new_text = textfor kw in include_word: link = keyword_maps.get(kw) text = re.sub(rf'({kw} )' , rf'{link} ">\g<1>', text, count=1 ) print(text)
以上的内容和关键词及链接都是虚构出来的,主要就是演示为目的。我们一般添加关键词连接的话都是添加站内的,因此大家拿去改吧改吧就成自己的了。这里只是给一个思路而已。
如果你想深入学习Python在seo领域的应用,那么欢迎参加我的python与seo实战训练营第三期
课程。
点击下面链接了解详情,或直接私聊我,wx:brookxs
第三期Python与seo实战训练营开始预售啦,9月开课
关注我,一起学习更多的seo技术