hello,我是李华同学,最近开始学习爬虫,下面是我实现的一个得到弹幕的代码
找一个的URL
想要得到一个网站的内容,首先要找到你想要内容的具体位置,首先你先找到一个有弹幕的地方,找到后按F12,找到在网络下,然后刷新页面,在左边搜索栏搜history可以找到储存弹幕的地址(图1),弹幕地址具体情况具体分析。
在标头下的“请求URL”,后面那一串链接就是要爬取的位置。(图2)
 
 
    图1
 
 
    图2
实现代码过程
- 将Python代码和Excel文件放在一个文件下
 
 
 
    图3
- 用request库进行操作
 
不会下载库的同学可以在pycharm终端下用pip下载,也可以在设置setting的project下下载,具体步骤不会可以搜大佬的文章。
用requests对网站进行访问,这里用到了get请求方法,请求方法可以在之前找URL下看到。(图2)
requests.get('https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory?roomid=5050')- 对访问的内容进行选择
 
我这里就选择了姓名和弹幕
   
    - 
     
      
     
     
      
       for ac 
       in d[
       'data'][
       'room']:
      
     
- 
     
      
     
     
      
               s = 
       "{}说:{}".
       format(ac[
       'nickname'], ac[
       'text'])
      
     
- 防止得到的内容重复
 
用列表储存爬取的数据,用if条件判断新爬取的内容是否在列表ls中,如果不在就用append追加到列表中。
   
    - 
     
      
     
     
      
       ls = []
      
     
- 
     
      
     
     
      
       if s 
       not 
       in ls:
      
     
- 
     
      
     
     
      
                   ls.append(ls)         
      
     
- 把得到的数据保存到Excel中
 
在这个过程中用到了openpyxl库。
首先在Excel中先写下表头(图4),为接下来插入得到的内容找位置,然后保存(记得爬取的时候不要打开Excel文件)。
   
    - 
     
      
     
     
      
       # 打开文件
      
     
- 
     
      
     
     
      
       wb = openpyxl.Workbook()
      
     
- 
     
      
     
     
      
       # 使用的工作对象创建一张表
      
     
- 
     
      
     
     
      
       sheet = wb.active
      
     
- 
     
      
     
     
      
       # 在sheet1表中写入内容 插入内容
      
     
- 
     
      
     
     
      
       sheet.append([
       'B友姓名', 
       'B友说的话'])
      
     
保存内容,这个是借鉴一个大佬的博客:【(1条消息) 利用python爬取信息并保存到excel_wer875442的博客-CSDN博客_如何将爬取的数据存入excel】,具体的解释可以看这位大佬的,还有实例。
   
    - 
     
      
     
     
      
       print(
       'B友姓名' + nickname, 
       'B友说的话' + text)
      
     
- 
     
      
     
     
                  
       print(
       '开始写入excel,请稍等...', end=
       '')
      
     
- 
     
      
     
     
      
                   xx_info = [nickname, text]
      
     
- 
     
      
     
     
      
                   sheet.append(xx_info)
      
     
- 
     
      
     
     
                  
       print(
       '写入成功\n')
      
     
- 
     
      
     
     
                  
       # 关闭保存工作簿
      
     
- 
     
      
     
     
      
               wb.save(
       'data.xls')
      
     
 
 
    图4
全部代码(代码的直接取)
   
    - 
     
      
     
     
      
       import random
      
     
- 
     
      
     
     
      
       import requests
      
     
- 
     
      
     
     
      
       import time
      
     
- 
     
      
     
     
      
       import openpyxl
      
     
- 
     
      
     
     
       
      
     
- 
     
      
     
     
      
       # 打开文件
      
     
- 
     
      
     
     
      
       wb = openpyxl.Workbook()
      
     
- 
     
      
     
     
      
       # 使用的工作对象创建一张表
      
     
- 
     
      
     
     
      
       sheet = wb.active
      
     
- 
     
      
     
     
      
       # 在sheet1表中写入内容 插入内容
      
     
- 
     
      
     
     
      
       sheet.append([
       'B友姓名', 
       'B友说的话'])  
       #这是在excel第一行插入,可以相当于一个文件的表头
      
     
- 
     
      
     
     
      
       # 用列表储存爬取内容,防止出现相似值
      
     
- 
     
      
     
     
      
       ls = []
      
     
- 
     
      
     
     
      
       # 循环实时弹幕
      
     
- 
     
      
     
     
      
       while 
       True:
      
     
- 
     
      
     
     
          
       # 爬取的直播间
      
     
- 
     
      
     
     
      
           r = requests.get(
       '')
       #这里括号里放找到的URL
      
     
- 
     
      
     
     
          
       # 每次爬取的间隔,防止让服务器崩溃
      
     
- 
     
      
     
     
      
           time.sleep(random.randint(
       1, 
       3))
      
     
- 
     
      
     
     
          
       # 将输出的字符串内容转换成字典形式
      
     
- 
     
      
     
     
      
           d = 
       eval(r.text)
      
     
- 
     
      
     
     
          
       # 在这两字典中爬取
      
     
- 
     
      
     
     
          
       for ac 
       in d[
       'data'][
       'room']:
      
     
- 
     
      
     
     
      
               s = 
       "{}说:{}".
       format(ac[
       'nickname'], ac[
       'text'])
      
     
- 
     
      
     
     
      
               nickname = ac[
       'nickname']
      
     
- 
     
      
     
     
      
               text = ac[
       'text']
      
     
- 
     
      
     
     
              
       # 判断输出内容是否重复
      
     
- 
     
      
     
     
              
       if s 
       not 
       in ls:
      
     
- 
     
      
     
     
      
                   ls.append(ls)
      
     
- 
     
      
     
     
                  
       # 确定没有重复值了输出
      
     
- 
     
      
     
     
                  
       # 颜色
      
     
- 
     
      
     
     
      
                   sheet.sheet_properties.tabColor = 
       '000000'
      
     
- 
     
      
     
     
                  
       print(
       'B友姓名' + nickname, 
       'B友说的话' + text)
      
     
- 
     
      
     
     
                  
       print(
       '开始写入excel,请稍等...', end=
       '')
      
     
- 
     
      
     
     
      
                   xx_info = [nickname, text]
      
     
- 
     
      
     
     
      
                   sheet.append(xx_info)
      
     
- 
     
      
     
     
                  
       print(
       '写入成功\n')
      
     
- 
     
      
     
     
                  
       # 关闭保存工作簿
      
     
- 
     
      
     
     
      
               wb.save(
       'data.xls')
      
     
  陌生人感谢您的观看,如果帮助您解决了问题,请给我点一个赞,让我有更充足的动力学习。
 
 
   转载:https://blog.csdn.net/weixin_70445937/article/details/128540367
查看评论
					 
					