如何快速统计网站所有页面的文本字数



前言

实现快速统计网站所有页面的文本字数,需要具备两个条件:
1.获取该网站的所有页面的html文件
2.提取html文件中的文本内容
实现如上两个条件,这里我们需要用到两个工具WinHTTrack Website Copier和python




一、WinHTTrack Website Copier是什么?

WinHTTrack Website Copier是一款离线浏览工具,使用它可以很容易地做站点镜像,可以将你指定的网站完整地保存到本地硬盘,能递归创建与源网站完全一样的组织结构,离线镜像创建后,你可以在断网的情况下任意浏览这个网站的所有内容。

二、WinHTTrack Website Copier使用步骤

  1. 打开WinHTTrack Website Copier,下一步
    在这里插入图片描述
  2. “Project name”可以使用网站名称命名,“base path”选择一个路径用来保存下载的文件,点击“下一步”。
    在这里插入图片描述
  3. 在“web addresses”中输入当前网站的URL地址。
    在这里插入图片描述
  4. 点击“Set options”按钮,在“Scan Rules”选项的文本框中根据需要添加相应的规则,这里我添加的是
    -.css -.js
    -.gif -.jpg -.jpeg -.png -.tif -.bmp
    -.zip -.tar -.tgz -.gz -.rar -.z -.exe
    -
    .mov -.mpg -.mpeg -.avi -.asf -.mp3 -.mp2 -.rm -.wav -.vob -.qt -.vid -.ac3 -.wma -.wmv
    在这里插入图片描述
  5. 在“Limits”选项中,“Maximum mirroring depth”根据需要进行设置,这里我设置的数值为10
    在这里插入图片描述
  6. 在“Links”选项中,勾选“Get HTML files first!”选项,点击“下一步”选择“完成”即可开始下载。
    在这里插入图片描述
  7. 需要实现的功能是统计整站网页的字数,因此我们这里只需要下载html文件即可。html文件所在位置为:[base path][Project name][Project name],该路径下的index.html和index文件夹下的所有文件为整站中的所有html。

三、什么是Python?

Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。
版本:Python3。


四、Python实现的功能

如下代码实现的主要功能是解析下载到的html文件,将html文件中的文本内容进行提取,并按照字符长度计算文本字数。

# -*- coding: utf-8 -*-

import os
import re
from lxml import etree


def traverse_file(read_path, save_path):
    """
    遍历目录下所有文件
    :param read_path: 读取文件路径
    :param save_path: 存储结果路径
    :return:
    """
    for base_path, folder_list, file_list in os.walk(read_path):
        print('开始遍历{}目录下的html文件'.format(base_path))
        for file_name in file_list:
            file_path = os.path.join(base_path, file_name)
            file_ext = file_path.rsplit('.', maxsplit=1)
            if file_ext[1] == 'html':  # 判断文件是否为html
                with open(file_path, 'rb') as f:
                    data = f.read().decode('utf-8', 'ignore')
                    html = etree.HTML(data)
                    pending_html = html.xpath("//body//*[not(self::style)]")  # 不提取style标签中的内容
                    pending_text = pending_html[0].xpath(" //body//*[not(self::script)]/text()")  # 不提取script标签中的内容
                    text = ''.join(pending_text)
                    text_new = text.replace(' ', '')
                    result = text_new.replace('\n', '')
                    print('该网站文本字数为:', len(result))
                    with open(save_path, 'a', encoding='utf-8') as f:
                        f.write(result)


def main():
    # 读取html文件路径
    read_path = r'D:\data\..'
    # 结果文件存储目录
    save_path = r'D:\result\...\result.txt'
    traverse_file(read_path, save_path)


if __name__ == '__main__':
    main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值