【Python3爬虫】为什么你的博客没人看呢?

我相信对于很多爱好和习惯写博客的人来说,如果自己的博客有很多人阅读和评论的话,自己会非常开心,但是你发现自己用心写的博客却没什么人看,多多少少会觉得有些伤心吧?我们今天就来看一下为什么你的博客没人看呢?

一、页面分析

首先进入博客园首页,可以看到一页有20篇博客简介,然后有200页,也就是说总共有20*200=4000篇博客。这时我们点击下一页,可以看到网页上的链接变成了https://www.cnblogs.com/#p2,看起来好像很简单--只需要改变#p后面的数字就好了,真的是这样吗?打开开发者工具,刷新页面,可以找到如下链接:

所携带的参数是这样的:

我们很容易就知道只需要改变PageIndex的数值就能实现翻页了。

二、解析网页

返回的结果如下图:

我们可以很方便的使用xpath来解析,相关代码如下:

1 et = etree.HTML(html)
2 title_list = et.xpath(‘//*[@class="post_item_body"]/h3/a/text()‘)  # 标题
3 author_list = et.xpath(‘//*[@class="post_item_foot"]/a/text()‘)  # 作者
4 time_list = et.xpath(‘//*[@class="post_item_foot"]/text()‘)  # 发布时间
5 read_list = et.xpath(‘//*[@class="post_item_foot"]/span[2]/a/text()‘)  # 阅读数
6 comment_list = et.xpath(‘//*[@class="post_item_foot"]/span[1]/a/text()‘)  # 评论数

这里得到的数据都是”发布于 2019-01-23 14:16“、”评论(0)“、”阅读(86)“这种,这样显然不利于我们对数据进行分析,所以还需要进行一下处理,相关代码如下:

1 # 处理数据
2 time_list = [i.strip().lstrip(‘发布于 ‘) for i in time_list if i.strip() != ‘‘]
3 comment_list = [int(i.strip().strip(‘评论(‘).rstrip(‘)‘)) for i in comment_list]
4 read_list = [int(i.strip().strip(‘阅读(‘).rstrip(‘)‘)) for i in read_list]

三、存储数据

这次我使用的数据库是MySQL数据库,首先创建一个数据表blogs,SQL代码如下:

create table if not exists blogs(title varchar(100) not null,author varchar(30) not null,rtime varchar(30) not null,readnum int(6) not null,commentnum int(6) not null);

然后就可以把爬取的数据都保存到数据库里,最后进入数据库查看一下:

四、数据分析

大家都是几点写博客的呢?什么时候写的博客会被更多人看到呢?这里我们可以建一个字典dic1,一个数字代表一个小时,其对应的值就是这个小时里发布的博客的数量之和,如下:

dic1 = {    0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0,    13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0,}

同理还可以建立一个一样的字典dic2,但是dic2中每个键的值是这个小时里发布的博客的阅读量之和。

由于一天的数据量比较小,也不能说明问题,然后通过查看数据库中的数据,可以知道最近的一篇博客是2019年1月22日写的,而最早的一篇的博客是2018-11-22日写的,所以我们可以把2018年12月整个月的数据提取出来进行分析,这样的话数据量不算少,得到的结果也就更有说服力。相关代码如下:

1  # 查看2018年12月的数据
2  day_list = ["2018-12-{}".format(str(i).zfill(2)) for i in range(1, 32)]
3  for day in day_list:
4     results = [i for i in all_data if day in i[0]]
5     for result in results:
6         t = int(result[0].split(‘ ‘)[1].split(‘:‘)[0])
7         dic1[t] += 1
8         dic2[t] += result[1]

最后根据结果绘制柱状图。

每小时发布的博客篇数:

每小时发布的博客阅读数:

从第一张图可以看到在早上9点-11点和下午3点-5点是发布博客的高峰期,在中晚饭时段也有不少人发博客,还有很多人选择在晚上下班之后写博客,比较意外的是凌晨三四点的时候也有人写博客,可以说是很厉害了。根据第二张图可以知道在早上8点-10点发的博客比较容易得到高阅读量,下午2点-5点也是比较不错的写博客的时间,而凌晨写博客的话就比较难被大家看到了,毕竟这个时候大多数人还在梦乡之中。要想你的博客被更多人看到和喜欢,除了选择一个合适的写博客的时间,最重要的就是用心写出一篇好的博客!

完整代码已上传到GitHub

原文地址:https://www.cnblogs.com/TM0831/p/10308894.html

时间: 2024-08-13 11:58:31

【Python3爬虫】为什么你的博客没人看呢?的相关文章

【Python3 爬虫】爬取博客园首页所有文章

首先,我们确定博客园首页地址为:https://www.cnblogs.com/ 我们打开可以看到有各种各样的文章在首页,如下图: 我们以上图标记的文章为例子吧!打开网页源码,搜索Docker,搜索结果如下图: 从上图后红色标记部分可以看出,我们使用正则表达式即可匹配该网址,我们匹配到该网址之后,将该网址对应的内容下载到到底进行存储. 实现代码 import urllib.request import re """ 爬取cnblogs首页所有的文章 ""&

python爬虫爬取csdn博客专家所有博客内容

python爬虫爬取csdn博客专家所有博客内容: 全部过程采取自动识别与抓取,抓取结果是将一个博主的所有 文章存放在以其名字命名的文件内,代码如下 结果如下: 版权声明:本文为博主原创文章,未经博主允许不得转载.

第二个爬虫:查看csdn博客阅读数

年轻人嘛,总是有一点功利心理,发一篇博客,不管内容质量怎么样,总是想得到更多的浏览量,就像渴求朋友圈的赞一样.但是频繁的上自己的博客只是为了看一眼浏览数或者有无评论,感觉听麻烦,所以就写了个爬虫抓一下数据. 说明: CSDN某用户的文章列表是这种网址http://blog.csdn.net/u011130578/article/list/,但是写博客多的用户,会有很多叶列表,这该怎么爬呢?这里有个投机取巧的办法是,在list后面输入一个足够大的数(比如某用户写了100篇博客,每页罗列20篇博文,

没人看系列----css 随笔

目录 没人看系列----css 随笔 没人看系列----html随笔 前言 没什么要说的就是自己总结,学习用的如果想学点什么东西,请绕行. CSS (Cascading Style Sheets)层叠样式表 引入方式 1.行内式 行内式是在标签的style属性中设定CSS样式. <div style="width:200px;height:100px;border:1px solid black;"></div> 2.嵌入式 嵌入式是将CSS样式集中写在网页的&

python学习第一弹:爬虫(抓取博客园新闻)

前言 说到python,对它有点耳闻的人,第一反应可能都是爬虫~ 这两天看了点python的皮毛知识,忍不住想写一个简单的爬虫练练手,JUST DO IT 准备工作 要制作数据抓取的爬虫,对请求的源页面结构需要有特定分析,只有分析正确了,才能更好更快的爬到我们想要的内容. 打开博客园任何一个新闻页面,比如https://news.cnblogs.com/n/570973/,思路是通过这个源页面,并且根据页面中的“上一篇”.“下一篇”等链接,源源不断的爬取其它新闻内容. 浏览器访问https://

Python爬虫入门教程:博客园首页推荐博客排行的秘密

1. 前言 虽然博客园注册已经有五年多了,但是最近才正式开始在这里写博客.(进了博客园才知道这里面个个都是人才,说话又好听,超喜欢这里...)但是由于写的内容都是软件测试相关,热度一直不是很高.看到首页的推荐博客排行时,心里痒痒的,想想看看这些大佬究竟是写了什么文章这么受欢迎,可以被推荐.所以用Python抓取了这100位推荐博客,简单分析了每个博客的文章分类,阅读排行榜,评论排行榜及推荐排行榜,最后统计汇总并生成词云.正好这也算是一篇非常好的Python爬虫入门教程了. 2. 环境准备 2.1

Python3.7实现自动刷博客访问量(只需要输入用户id)(转)

新增了代理功能,代码很浅显易懂不想多余讲解 import re import requests from requests import RequestException import time import random from bs4 import BeautifulSoup # 获取网页的response文件 def get_response(url): try: headers = { 'Referer': 'https://blog.csdn.net', # 伪装成从CSDN博客搜索

[Python爬虫]高并发cnblogs博客备份工具(可扩展成并行)

并发爬虫小练习. 直接粘贴到本地,命名为.py文件即可运行,运行时的参数为你想要爬取的用户.默认是本博客. 输出是以用户名命名的目录,目录内便是博客内容. 仅供学习python的多线程编程方法,后续会重写成并行爬虫. 爬虫代码如下: 1 # -*- coding:utf-8 -*- 2 from multiprocessing.managers import BaseManager 3 from pyquery import PyQuery 4 import os, sys, urllib 5

Python爬虫入门教程 54-100 博客园等博客网站自动评论器

爬虫背景 爬虫最核心的问题就是解决重复操作,当一件事情可以重复的进行的时候,就可以用爬虫来解决这个问题,今天要实现的一个基本需求是完成"博客园" 博客的自动评论,其实原理是非常简单的,提炼一下需求 基本需求 登录博客园<不实现,登录单独编写博客> 调用评论接口 返回请求结果 确定流程之后,基本就是找突破口的环节了 实际的去评论一下,然后不管你用什么抓包工具都可以,只要抓取到你想要的数据,即可 评论API如下 Request URL: https://www.cnblogs.