python是如何给文章自动添加关键词链接
- seo技术
- 2020-10-21 09:06

摘要:当我们发布文章的时候,希望能够给网站中的一些关键词自动的添加内链,这个在一些cms和博客程序里面是有插件实现对应的功能的。但是如果恰好你的博客程序或cms程序没有这个功能...
当我们发布文章的时候,希望能够给网站中的一些关键词自动的添加内链,这个在一些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'<a href="{link}">\g<1></a>', 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 = text for kw in include_word: link = keyword_maps.get(kw) text = re.sub(rf'({kw})', rf'<a href="{link}">\g<1></a>', text, count=1) print(text)
以上的内容和关键词及链接都是虚构出来的,主要就是演示为目的。我们一般添加关键词连接的话都是添加站内的,因此大家拿去改吧改吧就成自己的了。这里只是给一个思路而已。
本篇文章由daiit于2020-10-21 09:06发表,python是如何给文章自动添加关键词链接
转载请保留本文链接:http://www.daigeseo.com/seojishu/37.html
转载请保留本文链接:http://www.daigeseo.com/seojishu/37.html