python爬虫類の実戦的なbilibili弾幕は雲図を生成します.

6135 ワード

突然このテーマを思い付いて、先に問題をつけて、一回で解決することができるかどうかを見て、〓後記、2日間を使って解決して、ずっと自分の方法で登りたいですが、効果はすべてよくありません.
まず、bilibiliのウェブサイトの要求を分析してみます.しかし、弾幕の非同期転送のカバンが掴めない(または隠したほうがいいです.あるいは技術レベルが限られています.).そして、オンラインで比較的に一致するのはJSで弾幕xmlファイルのidを暴露した後、新しいのを使ってxmlファイルをダウンロードして分析してください.
大体の構想はavidでcidを持ってきて、cidは弾幕ファイルを獲得して、弾幕ファイルを解析して、雲図を生成します.
 二日間やって、まずコードを上げます.
from selenium import webdriver
from bs4 import BeautifulSoup
import re
from wordcloud import WordCloud
from scipy.misc import imread
import matplotlib.pyplot as plt

driver=webdriver.PhantomJS()
driver.get('http://www.bilibili.com/video/av15719999/')  #   selenium webdriver,   requests  get  ,   
soup = BeautifulSoup(driver.page_source,'lxml')          #    html    

sc = soup.find('script',text=re.compile("EmbedPlayer*"))#      ‘EmbedPlayer’ script  
sc1 =str(sc)  #  cid  
a = sc1.find('cid=');  
b = sc1.find('&');
sc2=sc1[a+4:b]
# print(sc2)
driver.get(
"http://comment.bilibili.com/"+sc2+".xml") # , cid xml soupxml = BeautifulSoup(driver.page_source,'lxml') ds =soupxml.find_all('d')# cuttext ='' for d in ds: cuttext = cuttext+' '+str(d.text);# #print(cuttext)
# color_mask = imread("425176.jpg") # cloud = WordCloud( # , , , , font_path="SourceHanSerif-Heavy.ttc", # background_color='white', # mask=color_mask, # , os max_words=100, # , os # max_font_size=40 ) word_cloud = cloud.generate_from_text(cuttext) # word_cloud.to_file("3.png") # # plt.imshow(word_cloud) plt.axis('off') plt.show()
 
嫌でなければ、私のホームページにアクセスして、機能を上に集めました.Funs機能リストで
http://1163949417-jack.55555.io/west/main/
転載先:https://www.cnblogs.com/Jacck/p/7751721.html