之前一直想统计每年博客大致写了多少字数,但是csdn中好像只有文章数统计,没有字数统计(或者是一直没有发现相关的功能)。最近学习python的网络相关模块时,python关于网页读取及抓取网页内容方面的功能比较强大及简便,于是想试试编写python脚本进行字数统计。
  参考文献2-3中介绍的基本抓取网页内容的思路是通过分析网页结构,用正则表达式匹配要抓取的内容,不过文献后面又介绍了使用BeautifulSoup提取数据的方式,后者使用起来更简单,本文使用BeautifulSoup获取网页内容。根据参考文献1,采用以下命令安装beautifulsoup4及HTML解析器(参考文献1中推荐安装lxml)

pip install beautifulsoup4
pip install lxml



  通过分析csdn网页源码,发现博客主要内容包含在article标签内(查看了多篇csdn文章,都是在articls内),如下图所示。

  于是统计单个博客文章字数的思路主要是读取网页内容->查找articls标签->获取标签内文本内容->计算字符串数量。由于是初步试手,暂时先不考虑精确计算,本人的文章中主要以文字为主,所以暂时想的是找出articles标签中的段落,忽略其它标签,计算段落内容总字符数(暂时将图片地址也作为文字)。
  BeautifulSoup的构造函数包括2个参数,第一个参数是文档字符串或是文件句柄,第二个参数是文档解析器。BeautifulSoup不支持直接指定网址,为此需要使用urllib模块中的urlopen打开网页后传入BeautifulSoup。
  代码比较简单,主要代码如下:

from bs4 import BeautifulSoup
import urllib.requestresponse = urllib.request.urlopen("https://blog.csdn.net/gc_2299/article/details/124464082?spm=1001.2014.3001.5501")
soup1=BeautifulSoup(response.read(), "lxml")print(soup1.title)
print(soup1.title.text)
result=soup1.article.find_all('p')textlengh=0
for p in result:textlengh+=len(p.text.strip())print(textlengh)

  代码中的网址是前几天翻译的文档,编辑状态下看到的字数是1829,使用程序计算的结果是1847,相差不算太大,程序的执行结果如下图所示:

  再找另一篇《(翻译)表单中电话号码字段的不良设计》测试,该文编辑状态下的字数是1451,使用程序计算的结果是1439,也还凑合。
  总的来说,计算精度还有待提高,后续接着学习怎么从博客主页获取一年的文章清单。

参考文献:
[1]https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/#id8
[2]Python从菜鸟到高手
[3]python基础教程

python使用BeautifulSoup获取csdn单个博客文章字数相关推荐

  1. Python爬虫入门实战1:获取CSDN个人博客文章目录及阅读量数据

    ☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036 ░ 一.引言 有阵子博客的访问量出现了比较大 ...

  2. Python爬虫入门实战2:获取CSDN个人博客文章基础信息

    ☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036 ░ 一.引言 当爬取博文内容时,有时需要进行 ...

  3. python统计csdn个人博客文章清单及字数

      为了统计csdn个人博客文章字数,之前已经学习并测试了获取文章字数.获取博客文章清单.python操作excel文件等内容,基本上可以拼凑起一个基本的统计程序.   合并之前三篇文章中的测试代码, ...

  4. 使用Python爬取CSDN历史博客文章列表,并生成目录

    使用Python爬取CSDN历史博客文章列表,并生成目录 这篇博客将介绍如何使用Python爬取CSDN历史博客文章列表,并生成目录. 2020年 2020年04月 cv2.threshold() 阈 ...

  5. 统计个人CSDN的博客文章数量

    统计个人CSDN的博客文章数量 第一版 原始版本比较简单 只能统计第一页,而且没有进行排序 # coding:utf-8 import urllib2 from bs4 import Beautifu ...

  6. 如何使用live writer客户端来发布CSDN的博客文章?

    如何使用live writer客户端来发布CSDN的博客文章? http://blog.csdn.net/soune/article/details/4439158 live writer是写博客的一 ...

  7. CSDN,CNBLOGS博客文章一键转载插件 终于更新了!

    之前,Shawn Chou等朋友一直建议插件支持cnblogs文章转载,但一直没时间修改插件,今天晚上抽时间将插件进行了升级,可以支持 CSDN,CNBLOGS博客文章的一键转载.时间仓促,难免有各种 ...

  8. 技术图文:如何利用C#爬取CSDN的博客文章?

    背景 大家有没有这样的体验,在 CSDN 上发现某个博主有很多干货文章,我们就想拿到这个博主以往文章的列表,在需要的时候进行查询和浏览. 如果从 CSDN 网站上用复制粘贴的方式来建立这个列表,一个是 ...

  9. python爬去segementfault上的博客文章

    利用Scray框架爬去segementfault上的保存到数据库然后发送到自己的邮箱 先显示部分源码: coding:utf-8 ! /usr/bin/python ''' Author fiz Da ...

最新文章

  1. POJ_2001_Shortest Prefixes
  2. nginx的pid问题
  3. 通过Serverless技术降低微服务应用资源成本
  4. Json字符串转对象,使用ObjectMapper方式报错:no String-argument constructor/factory method
  5. faster rcnn在自己的数据集上训练
  6. android 按钮点击声音,如何在Android中单击按钮时播放声音?
  7. C语言编程初体验 作文,我的理想是当编程师作文
  8. Gitlab项目迁移
  9. ClassLoader类加载器,以及双亲委派模型
  10. 【Latex】教你如何在word中像LaTex那样打公式
  11. 一级计算机考试比分,人工智能期末考试模拟试题一01
  12. Win7中自带截图工具
  13. last-winner-airdrop
  14. 情感分析textblob--英文分析
  15. SFDC中的DEBUG
  16. 厕所地图,玩出新花样!
  17. IT英语中英文对照:著名的软件产品
  18. 计算机c盘一直减小咋办,C盘空间越来越小怎么办有效解决方案
  19. 软件测试基础-Web前端(二)
  20. mysql 分表-横向,纵向

热门文章

  1. 提高班中学部的学习生活
  2. MySQL数据表的结构和设计及三范式
  3. 【262期】面试官:jwt 是什么?java-jwt 呢?懵逼了。。。
  4. PCIE下载的驱动安装
  5. 38款 流媒体服务器开源软件
  6. 阿吉兰兄弟控股集团、亚马逊云科技、新东方、丹佛斯、赛莱默等企业亮相服贸会 | 美通社头条...
  7. Python程序设计(一 认识Python)—— 认识Python
  8. FPGA经验谈系列文章——静态时序分析(二)
  9. 线程间同步和通信,event semaphore mailbox
  10. 分析报告-网站搜索引擎优化诊断