You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python实现统计多个指定单词在网页中的出现次数

多单词网页统计代码调整方案

问题原因

你现有代码报错的核心原因如下:

  • 原count_words函数仅设计为接收单个单词参数,传入多个逗号分隔的参数时会触发参数数量不匹配的报错
  • 你写的word = ('movie')本质还是单个字符串,仅加括号不加逗号并不会生成元组,多单词元组的正确写法为words = ('movie', 'cinema', 'ticket')

调整后可支持任意数量单词统计的代码

以下实现既可以分别输出每个单词的出现次数,也可以统计所有指定单词的总出现次数:

import requests

# 用*words可变参数接收任意数量的待统计单词
def count_words(url, *words):
    r = requests.get(url).text
    # 生成键为单词、值为对应出现次数的字典返回
    return {word: r.count(word) for word in words}


def main():
    url = 'https://en.wikipedia.org/wiki/AMC_Theatres'
    # 可自行增减此处的单词数量,支持2、3、4个乃至更多单词统计
    target_words = ('movie', 'cinema', 'ticket', 'theater')
    count_result = count_words(url, *target_words)
    total_count = 0
    
    # 分别打印每个单词的统计结果
    for word, cnt in count_result.items():
        print(f'Url: {url}\ncontains {cnt} occurrences of word: {word}\n')
        total_count += cnt
    # 打印所有单词总出现次数
    print(f'所有指定单词的总出现次数为:{total_count}')


if __name__ == '__main__':
    main()

可选优化:精确匹配独立单词

现有str.count()实现会区分大小写,且会匹配包含目标词的子串(比如统计movie时,movies里的movie片段也会被计入)。如果需要精确匹配不区分大小写的独立单词,可以改用正则实现,将count_words函数替换为以下版本:

import re
import requests

def count_words(url, *words):
    r = requests.get(url).text
    count_dict = {}
    for word in words:
        # re.IGNORECASE代表不区分大小写,\b代表单词边界
        count_dict[word] = len(re.findall(fr'\b{re.escape(word)}\b', r, flags=re.IGNORECASE))
    return count_dict

内容的提问来源于stack exchange,提问作者CBx12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:00:06