利用Python怎么获取弹幕数据

  介绍

今天就跟大家聊聊有关利用Python怎么获取弹幕数据,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

import  zlib   得到bs4  import  BeautifulSoup   with 开放(r" C: \ \用户下载惠普\ \ 6024766870349300 _300_10.z",, & # 39; rb # 39;), as 鳍:=,,content  fin.read ()   时间=btArr 中bytearray(内容)   xml=zlib.decompress (btArr) .decode (& # 39; utf - 8 # 39;)   时间=bs  BeautifulSoup (xml、“xml")   b

输出

利用Python怎么获取弹幕数据

因此tvid只要获得就能轻松获取该电视剧的弹幕文件数据。

import  zlib   得到bs4  import  BeautifulSoup   import  pandas  as  pd   import 请求   def  get_data (tv_name tv_id):   ,“““   ,获取每集的tvid   ,:param  tv_name:集数,第1集,第2集…   ,:param  tv_id:每集的tvid   :返回:大敌;DataFrame,,最终的数据   ,“““=,base_url  & # 39; https://cmts.iqiyi.com/bullet/{}/{}/{} _300_{}还是z # 39;   ,#新建一个只有表头的DataFrame=,,head_data  pd.DataFrame(列=[& # 39;uid # 39; & # 39; contentsId& # 39;, & # 39;内容# 39;,& # 39;likeCount& # 39;])   ,for 小姐:拷贝范围(20):=,,url  base_url.format (tv_id [4: 2], tv_id [2], tv_id,我)   ,打印(url)=,,res  requests.get (url)   ,if  res.status_code ==, 200:   时间=btArr 才能;中bytearray (res.content),   xml才能=zlib.decompress (btArr) .decode (& # 39; utf - 8 # 39;), #,解压压缩文件   时间=bs 才能;BeautifulSoup (xml、“xml"), #, BeautifulSoup网页解析   data 才能=,pd.DataFrame(列=[& # 39;uid # 39; & # 39; contentsId& # 39;, & # 39;内容# 39;,& # 39;likeCount& # 39;])   数据才能[& # 39;uid # 39;],=, (i.text  for 小姐:拷贝bs.findAll (& # 39; uid # 39;))   数据才能[& # 39;contentsId& # 39;],=, (i.text  for 小姐:拷贝bs.findAll (& # 39; contentId& # 39;))   数据才能[& # 39;内容# 39;],=,(i.text  for 小姐:拷贝bs.findAll(& # 39;内容# 39;))   数据才能[& # 39;likeCount& # 39;],=, (i.text  for 小姐:拷贝bs.findAll (& # 39; likeCount& # 39;))   ,其他的:   ,打破=,,head_data  pd.concat (head_data、数据,ignore_index =,真的)   ,head_data [& # 39; tv_name& # 39;]=, tv_name   以前,return  head_data

获取tvid

上文已通过tvid获取到了弹幕文件数据,那么如何获取tvid又变成了一个问题。莫急,我们继续分析。直接Ctrl + F搜索tvid

利用Python怎么获取弹幕数据

因此可以直接从返回结果中通过正则表达式获取tvid。

得到requests_html  import  HTMLSession, UserAgent   得到bs4  import  BeautifulSoup   import 再保险   def  get_tvid (url):   ,“““   ,获取每集的tvid   ,:param  url:请求网址   ,:返回:str,,每集的tvid   ,“““=,,session  HTMLSession(), #创建HTML会话对象=,,user_agent  UserAgent () .random  #创建随机请求头=,,header  {“User-Agent": user_agent}=,,res  session.get (url,头=头)   ,res.encoding=& # 39; utf - 8 # 39;=,,bs  BeautifulSoup (res.text,“html.parser")   ,pattern =re.compile (“。* tvid . * ? (\ d{16})。* ?“), #,定义正则表达式=,,text_list  bs.find_all(文本=模式),#,通过正则表达式获取内容   ,for  t 拷贝范围(len (text_list)):=,,res_list  pattern.findall (text_list [t])   ,if  not  res_list:   ,通过   ,其他的:   时间=tvid 才能;res_list [0]   以前,return  tvid

由此问题tvid。来每一集都有一个tvid,有多少集电视剧就可以获取多少个tvid。那么问题又来了:获取tvid时,是通过url发送请求,从返回结果中获取。而每一集的url又该如何获取呢。

获取每集url

通过元素选择工具定位到集数选择信息。通过硒模拟浏览器获取动态加载信息。

利用Python怎么获取弹幕数据

有小伙伴会说,可以直接直接从返回内容中获取此href网址啊,你可以自己动手尝试下。

云朵君尝试后得到的结果是href=癹avascript:无效(0);“rel=巴獠縩ofollow",因此解决这一问题的方法之一是运用硒模拟浏览器获取js动态加载信息。

利用Python怎么获取弹幕数据