zoukankan      html  css  js  c++  java
  • 最简单文本的爬虫,并结合数据分析和可视化能力

    前言

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

    作者:数据皮皮侠

    B站视频的特点是可以根据视频主键标识oid就可以得到字幕,一般使用地址:https://api.bilibili.com/x/v1/dm/list.so?oid=真实oid,找到oid的方法是在网页上通过F12查看网页信息,刷新网页后查看oid即可,如下:

    最简单文本的爬虫,并结合数据分析和可视化能力

     

    本次使用《夏洛特烦恼》电源的实时字幕测试,在b站的链接是:https://www.bilibili.com/bangumi/play/ep320665?from=search&seid=12253113013013173840,马什么梅啊,Ma What?

    最简单文本的爬虫,并结合数据分析和可视化能力

     

    播放时候使用上述方法查找oid,发现用https://api.bilibili.com/x/v1/dm/list.so?oid=183896111的链接可以查看字母的XML文件列表:

    最简单文本的爬虫,并结合数据分析和可视化能力

     

    1、首先,我们得到把字幕保存到本地,这里使用lxml包处理读取的HTML并提取其中元素,保存本地;

    import requests
    import jieba
    import os
    import numpy as np
    from lxml import etree
    from PIL import Image
    import jieba.analyse
    import matplotlib.pyplot as plt
    from wordcloud import WordCloud, ImageColorGenerator
    
    url = 'https://api.bilibili.com/x/v1/dm/list.so?oid=183896111'
    headers={
    "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
    }
    response=requests.get(url,headers=headers)
    html=etree.HTML(response.content)
    d_list=html.xpath("//d//text()")
    print("+++++++++++++++++"+os.getcwd()+"+++++++++++++++++")
    with open ('xialuote.txt',"a+",encoding="utf-8") as f:
    for t in d_list:
    f.write(t+'
    ')

    二、词云制作,使用结巴分词读取数据,并计算常用词汇出现的频率,使用wordcloud显示图片;

    words = ''
    f = open('xialuote.txt', 'r',encoding='utf-8')
    for i in f:
        words += f.read()
    
    
    result = jieba.analyse.textrank(words, topK=450, withWeight=True)
    keyworlds = dict()
    or i in result:
    
        keyworlds[i[0]] = i[1]
    
    
    
    #print(keyworlds)
    
    
    
    image = Image.open('test.jpg')
    
    graph = np.array(image)
    
    wc = WordCloud(font_path='simhei.ttf', background_color='Black', max_font_size=170, mask=graph)
    
    wc.generate_from_frequencies(keyworlds)
    
    image_color = ImageColorGenerator(graph)
    
    plt.imshow(wc)
    
    # plt.imshow(wc.recolor(color_func=image_color))
    
    plt.axis('off')
    
    plt.show()
    
    wc.to_file('x.png')

    输出图片:

    最简单文本的爬虫,并结合数据分析和可视化能力

     

    PS:如有需要Python学习资料的小伙伴可以加下方的群去找免费管理员领取

    最简单文本的爬虫,并结合数据分析和可视化能力

     

    可以免费领取源码、项目实战视频、PDF文件等

    最简单文本的爬虫,并结合数据分析和可视化能力
  • 相关阅读:
    学习如何看懂SQL Server执行计划(一)——数据查询篇
    【异常】warning: refname 'feature1.3.0' is ambiguous.导致git merge失败
    Mac上使用sunlogin向日葵软件远程控制电脑
    软件随想录-
    idea启动卡死,项目界面一直processing
    【异常】hbase启动后hdfs文件权限目录不一致,导致Phoenix无法删除表结构
    【异常】ssh无法登录验证,非root用户ssh本机无法成功
    【异常】postman能够请求成功获取到参数,前端请求的却请求不到
    CentOS7磁盘空间不足,却找不到占用空间的大文件
    【异常】553 Mail from must equal authorized user
  • 原文地址:https://www.cnblogs.com/moon3/p/14510981.html
Copyright © 2011-2022 走看看