zoukankan      html  css  js  c++  java
  • python奇闻杂技05 爬虫初步学习+jieba分词+词云库+哔哩哔哩弹幕爬取示例(数据分析pandas)

    结巴分词

    import jieba
    """
    pip install jieba
    
    1、精确模式
    2、全模式
    3、搜索引擎模式
    """
    txt = '中国,是以华夏文明为源泉、中华文化为基础,并以汉族为主体民族的多民族国家,通用汉语、汉字,汉族与少数民族被统称为“中华民族”,又自称为炎黄子孙、龙的传人。'
    # 精确模式(没有冗余)
    # res = jieba.cut(txt)  # 获取可迭代对象
    res = jieba.lcut(txt) # 获取列表

    result:

    ['中国', ',', '是', '以', '华夏', '文明', '为', '源泉', '、', '中华文化', '为', '基础', ',', '并', '以', '汉族', '为', '主体', '民族', '的', '多', '民族', '国家', ',', '通用', '汉语', '、', '汉字', ',', '汉族', '与', '少数民族', '被', '统称', '为', '“', '中华民族', '”', ',', '又', '自称为', '炎黄子孙', '、', '龙的传人', '。']

    # 全模式
    # res1 = jieba.cut(txt, cut_all=True)  # 获取可迭代对象
    res1 = jieba.lcut(txt, cut_all = True)

    result:

    ['中国', '', '', '是', '以', '华夏', '文明', '明为', '源泉', '', '', '中华', '中华文化', '华文', '文化', '化为', '基础', '', '', '并以', '汉族', '为主', '主体', '民族', '的', '多', '民族', '国家', '', '', '通用', '汉语', '', '', '汉字', '', '', '汉族', '与', '少数', '少数民族', '民族', '被', '统称', '称为', '', '', '中华', '中华民族', '民族', '', '', '', '又', '自称', '自称为', '称为', '炎黄', '炎黄子孙', '子孙', '', '', '龙的传人', '传人', '', '']

    # 搜索引擎模式
    # res2 = jieba.cut_for_search(txt)  # 获取可迭代对象
    res2 = jieba.lcut_for_search(txt)

    result:

    ['中国', ',', '是', '以', '华夏', '文明', '为', '源泉', '、', '中华', '华文', '文化', '中华文化', '为', '基础', ',', '并', '以', '汉族', '为', '主体', '民族', '的', '多', '民族', '国家', ',', '通用', '汉语', '、', '汉字', ',', '汉族', '与', '少数', '民族', '少数民族', '被', '统称', '为', '“', '中华', '民族', '中华民族', '”', ',', '又', '自称', '称为', '自称为', '炎黄', '子孙', '炎黄子孙', '、', '传人', '龙的传人', '。']

     

    词云:

    示例一:

    五角星.jpg运行结果程序输出cy.png

    # pip install wordcloud
    # from wordcloud import WordCloud
    # pip install scipy==1.2.0          #下载老版本,已装新版本会被覆盖,新版本没有该方法
    # pip install imageio
    from wordcloud import WordCloud     #导入子包,节约资源
    import matplotlib.pyplot as plt     #绘图分析模块
    from scipy.misc import imread       #用于读写图像
    #from imageio import imread         #可用imageio库替代scipy库
    
    txt="life uis short you need python"
    txt1='中国,是以华夏文明为源泉、中华文化为基础'
    
    color_mask=imread('五角星.jpg')                            #项目内放入一张五角星.jpg
    
    wc= WordCloud(font_path=r'C:WindowsFontssimkai.ttf',     #windows自带字体文件路径
                  background_color='white',                     #设置背景色为白色
                  width=1080,
                  height=960,
                  min_font_size=4,                              #设定词云中最小字号,默认为4号
                  mask=color_mask                               #给定词云形状
                  )
    
    wc.generate(txt1)                                           #向WordCloud对象wc中加载文本txt1
    wc.to_file('cy.png')                                        #将词云输出为图像文件
    plt.imshow(wc)
    plt.show()                                                  #显示图片

    示例二:

     运行结果输出小康社会.png

    import jieba
    from wordcloud import WordCloud     #导入子包,节约资源
    import matplotlib.pyplot as plt     #下载matplotlib包
    from scipy.misc import imread
    f
    = open('决胜全面建成小康社会.txt',encoding='utf-8') #打开指定txt文件,编码为utf-8 data = f.read() #读取文件内容 res=jieba.lcut(data) #精确分词,变为列表 result = ''.join(res) #把列表组合成字符串 color_mask = imread('五角星.jpg') #设定形状 wc = WordCloud(font_path = r'C:WindowsFontssimkai.ttf', #windows内的字体文件 background_color = 'white', width = 1080, height = 960, mask = color_mask #给定词云形状 ) wc.generate(result) #向WordCloud对象wc中加载文本 wc.to_file('小康社会.png') #将词云输出为图像文件 plt.imshow(wc) plt.show() #显示图片

     哔哩哔哩弹幕爬取示例:

    sign.txt(中途生成,传入弹幕信息)

    输出bili.png

    """
    pip install pandas      数据分析包
    pip install bs4         HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据
    pip install requests
    pip install lxml
    """
    
    import requests
    from bs4 import BeautifulSoup
    import pandas as pd
    import datetime
    import re                           #用于正则表达式
    from wordcloud import WordCloud
    import jieba
    from scipy.misc import imread
    import matplotlib.pyplot as plt
    
    header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
    }                                 #模拟浏览器访问
    url = 'http://comment.bilibili.com/106015992.xml'     #视频弹幕网页(下方标注B站弹幕来源)
    response = requests.get(url=url,headers=header)       # 向对方服务器发送请求
    response.encoding = response.apparent_encoding        # 设置字符编码为获取网页当前编码格式
    data = response.text                  #获取文本
    soup = BeautifulSoup(data,'lxml')     #只有lxml 解析,才能进行各种参数分析
    d_list = soup.find_all('d')           #获取所有的d标签
    dlst = []
    for i in d_list:                # 循环拿出所有的d标签
        danmu = {}
        danmu['弹幕'] = i.text      #获取文本信息
        # danmu['时间']=datetime.datetime.now()
        # danmu['路径']=url
        dlst.append(danmu)          #添加到数组中
    df = pd.DataFrame(dlst)         #转换成二维数组,类似于execl表格
    
    f = open('sign.txt','w',encoding = 'utf')       #打开sign.txt文件,没有则自动生成文件
    for i in df['弹幕'].values:           # 循环所有的文本信息
        pat = re.compile(r'[一-龥]+')       #定义过滤数据的规则,[一-龥]代表所有的汉字
        filter_data = re.findall(pattern = pat,string = i)        # 执行过滤操作
        f.write(''.join(filter_data))       #写入文本,样式如上图文本图片所示
    f.close()                               #关闭txt文件
    
    f = open('sign.txt', 'r', encoding='utf8')  #打开sign.txt文件
    data = f.read()                             #读取文本,传入data变量
    result = ' '.join(jieba.lcut(data))         #把读取内容分词,然后用空格连接成字符串
    f.close()                                   #关闭txt文件
    
    color_mask = imread('五角星.jpg')           #设定形状
    
    wc = WordCloud(
        font_path=r'C:WindowsFontssimkai.ttf',  #windows内的字体文件
        width=1000,
        height=800,
        mask=color_mask,                           #给定词云形状
        background_color='white'                   #设定词云背景为白色
    )
    
    wc.generate(result)                            #向WordCloud对象wc中加载文本
    
    wc.to_file('bili.png')                         #将词云输出为图像文件
    
    plt.imshow(wc)
    plt.show()                                     # 显示图片

    B站弹幕弹幕查找:

    1.视频页面右键,点击查看源代码

     2.在源码中搜索cid",找出对应ID

     3.输入comment.bilibili.com/对应ID.xml 即可找到对应弹幕页面

  • 相关阅读:
    npm 设置淘宝镜像
    JS字符串首字母大写
    类与面向对象基础(三)
    (转)php简单工厂模式实例讲解
    类与面向对象基础(二)
    类与面向对象基础(一)
    php连接数据库
    php中使用指针进行函数操作
    PHP基础之数组
    PHP正则表达式
  • 原文地址:https://www.cnblogs.com/ludingchao/p/11754530.html
Copyright © 2011-2022 走看看