zoukankan      html  css  js  c++  java
  • 有关爬虫的应用,哔哩哔哩弹幕

    爬虫的一个小实例

    使用工具:

    jieba分词;

    Wordcloud词云

    requests

    • 源程序

      import requests#爬虫的请求包
      import pandas as pd#pandas数据分析包
      from bs4 import BeautifulSoup
      import datetime
      import re
      import jieba
      from wordcloud import WordCloud
      from imageio import imread
      import matplotlib.pyplot as plt
      
      header = {
          'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
      }
      url = 'http://comment.bilibili.com/125511694.xml'
      response = requests.get(url=url, headers=header)#向对方服务器发送请求
      response.encoding = response.apparent_encoding#设置字符编码
      data = response.text#获取文本
      soup = BeautifulSoup(data, 'lxml')#解析
      d_list = soup.find_all('d')#获取所有的d标签
      dlst = []
      for d in d_list:
          danmu = {}
          danmu['弹幕'] = d.text#获取文本信息
          dlst.append(danmu)
      df = pd.DataFrame(dlst)#转换成二位数组,类似于execl表格
      f = open('sign.txt', 'w', encoding='utf-8')#打开文件
      for i in df['弹幕'].values:#循环所有的文本信息
          pat = re.compile(r'[1-龥]+')# 定义过滤数据的规则,所有的汉字
          filter_data = re.findall(pattern=pat, string=i)#执行过滤操作
          f.write("".join(filter_data))#写入文本
      f.close()
      

      改进版的弹幕源代码

      import requests#爬虫的请求包
      import pandas as pd#pandas数据分析包
      from bs4 import BeautifulSoup
      import datetime
      import re
      import jieba
      from wordcloud import WordCloud
      from imageio import imread
      import matplotlib.pyplot as plt
      
      f = open('sign.txt', 'r', encoding='utf-8')
      data = f.read()
      result = " ".join(jieba.lcut(data))
      f.close()
      color_mask = imread('小猪佩奇.jpg')
      wc = WordCloud(
          font_path=r'C:WindowsFontssimkai.ttf',
          width=1000,
          height=800,
          mask=color_mask,
          background_color='pink'
      )
      wc.generate(result)
      wc.to_file('bili.jpg')
      plt.imshow(wc)
      plt.show()
      

  • 相关阅读:
    沙盒配置好的测试
    云端存储的实现:云存储1
    演职人员名单MobileMenuList
    关于GitHub的朋友的NE Game
    到了冲刺阶段
    云存储的配置3
    刚才花了1$赞助了那位伙计
    我知道这对自己是个积累的过程,很好,我成长的很快
    煎熬过后终于有一刻释怀
    空白不曾停止。。。
  • 原文地址:https://www.cnblogs.com/yafeng666/p/11753250.html
Copyright © 2011-2022 走看看