今天小编给大家分享一下python怎么找出某个关键字出现的次数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
题目:如何根据URL对应的网页中查找出某个关键字出现的次数,例如 “https://www.ershicimi.com/” 网页中出现 “python”次数是多少?
首先我们对问题进行分解,第一步是想办法拿到网页里面的内容,这个很简单,用requests库就能做到。第二步就是对数据进行清洗,去除html标签提取文本内容,可以使用 BeautifuSoup,也可以用 Requests-html 来解决,Python大法好,轮子多。第三步根据文本中出现的关键字进行统计。
前两步下先忽略,我们重点讨论第三步。
想获取关键字出现的次数有3种方式,具体看你自己的需求,一种就是使用字符串提供的API方法 string.count(),这个最简单,直接返回出现的次数。例如:
>>> "我关注了你,你关注了我".count("关注")
2
不过这种方式有个局限性,如果你想知道关键字出现的位置在哪里,这个实现不了,你需要使用第二种方法,这种方式就是正则表达式,正则可以说是处理字符串最强大的工具没有之一。没有涉及到字符操作,一定不要把正则忽略了。
>>> for m in re.finditer("(关注)", "我关注了你,你关注了我"):
... print(m.start())
...
1
7
使用 match 对象的start()方法可以知道匹配字符出现的所在位置。这个例子告诉我们关键字出现的位置在第1个和第7个。
如果这还不够,你想知道出现频率最高的单词,如果是英文好说,根据空格将单词分隔再逐个统计,使用 collections.Counter 模块就能实现,但是中文不行,中文词语之间是没有空格的,所以需要用到中文分词工具将句子进行切分。jieba分词是比较常用的。
import jieba
from collections import Counter
def get_words(txt):
seg_list = jieba.cut(txt)
c = Counter()
for x in seg_list:
if len(x)>1 and x != '\r\n':
c[x] += 1
print('词频统计')
for (k,v) in c.most_common(100):
print(f'{k}: {v}')
以上就是“python怎么找出某个关键字出现的次数”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。