当前位置:主页 > seo技术 >

python是如何给文章自动添加关键词链接

python是如何给文章自动添加关键词链接

摘要:当我们发布文章的时候,希望能够给网站中的一些关键词自动的添加内链,这个在一些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)

效果如下:

python是如何给文章自动添加关键词链接

这里的话只是首次出现的时候进行替换,如果想要全部替换那么把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)

以上的内容和关键词及链接都是虚构出来的,主要就是演示为目的。我们一般添加关键词连接的话都是添加站内的,因此大家拿去改吧改吧就成自己的了。这里只是给一个思路而已。

 

最新文章