Python系列 | 基于Requests和PyEcharts实现爬取博客数据可视化大屏分析

博客数据分析大屏可视化实现的效果:
请添加图片描述

一、核心功能设计

学习笔记分享:
博客作者数据分析实现的思路大致为爬虫(用户通过控制台输入用户博客地址和博客文章地址)和大屏可视化展示两方面。

接下来我们可以通过以下几步实现需求:

  1. 定义好相关列表准备存储相关信息
  2. 读取用户收入的博客地址和博客文章地址
  3. 使用Beautifulsoup解析器的find_all()来进行解析,使用find()和append()实现关键字和数值的查找
  4. 可视化部分读取excel爬取的数据
  5. 使用PyEchart实现博客作者详细信息和文章信息图表

二、准备工作

1. Requests

Requests官方文档:requests

requests是一个很实用的Python HTTP客户端库,爬虫和测试服务器响应数据时经常会用到,requests是Python语言的第三方的库,专门用于发送HTTP请求。

2. PyEchart

PyEchart官方文档:pyechart

Echarts是一个由百度开源的商业级数据图表,它是一个纯JavaScript的图表库,可以为用户提供直观生动,可交互,可高度个性化定制的数据可视化图表,赋予了用户对数据进行挖掘整合的能力。

三、实现步骤

(一)、爬虫部分实现

1. 获取网页数据并返回

核心设计代码如下:

# woshinsy
def get_html(url):
    try:
        headers = {
   
            'User-Agent': 'Mozilla/5.0 (MSIE 10.0; Windows NT 6.1; Trident/5.0)',
        }
        r = requests.get(url,headers=headers)             # 使用get来获取网页数据
        r.raise_for_status()              # 如果返回参数不为200,抛出异常
        r.encoding = r.apparent_encoding  # 获取网页编码方式
        return r.text                     # 返回获取的内容
    except:
        return '错误'

2. 爬取博客作者和文章相关数据

核心设计代码如下:

#woshinsy
def author_info():
    # 定义好相关列表准备存储相关信息
    head_img = [] # 头像
    author_name = [] # 用户名
    visitor_num = [] # 访问数
    article_num = [] # 文章数
    rank_num = [] # 排行榜
    fans_num = [] # 粉丝数
    like_num = [] # 点赞数
    comment_num = [] # 评论数
    fav_num = [] # 收藏数

    url = input("请输入博客用户地址:")
    print(url)
    # url = 'https://blog.csdn.net/woshinsy'    # 网址
    html = get_html(url)                                       # 获取返回值
    # print(html)                                              # 打印
    # beautifulsoup的find_all()来进行解析。在这里,find_all()的第一个参数是标签名,第二个是标签中的class值(注意下划线哦(class_=‘info’))
    soup = BeautifulSoup(html, 'html.parser')  # 指定BeautifulSoup的解析器

    # 头像
    tx = soup.find('div', class_='user-profile-avatar').find('img')['src']
    head_img.append(str(tx))
    # print(head_img)
    # 用户名
    yhm = soup.find('div', class_='user-profile-head-name').find('div').get_text()
    author_name.append(str(yhm))
    # print(author_name)
    # 访问量
    fwl = soup.find_all('div', class_='user-profile-statistics-num')[0].get_text()
    visitor_num.append(fwl)
    print(visitor_num)
    # 文章数
    wzs = soup.find_all('div', class_='user-profile-statistics-num')[1].get_text()
    article_num.append(wzs)
    print(article_num)
    # 排行榜
    phb = soup.find_all('div', class_='user-profile-statistics-num')[2].get_text()
    rank_num.append(phb)
    print(rank_num)
    # 粉丝数
    fss = soup.find_all('div', class_='user-profile-statistics-num')[3].get_text()
    fans_num.append(fss)
    print(fans_num)
    # 点赞数
    dzs = soup.find('ul', class_='aside-common-box-achievement').find_all('span')[0].get_text()
    like_num.append(dzs)
    print(like_num)
    # 评论数
    pls = soup.find('ul', class_='aside-common-box-achievement').find_all('span')[1].get_text()
    comment_num.append(pls)
    print(comment_num)
    # 收藏数
    scs = soup.find('ul', class_='aside-common-box-achievement').find_all('span')
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值