当前位置:   article > 正文

爬虫练习:采集B站up主视频信息_b站爬虫up主

b站爬虫up主

一、网页信息(示例网址:https://space.bilibili.com/3493110839511225/video)

二、查看响应数据

三、查看数据包内容

四、相关代码(代码内容未进行翻页爬取)

  1. # @Time: 2024/1/19 16:42
  2. # @Author: 马龙强
  3. # @File: 采集B站up主信息.py
  4. # @software: PyCharm
  5. """
  6. 网址:https://space.bilibili.com/3493110839511225/video
  7. 数据:标题、BV号、播放量、评论、弹幕。。。。
  8. 数据包:https://api.bilibili.com/x/space/wbi/arc/search
  9. 代码步骤:发送请求、获取数据、解析数据、保存数据
  10. 多页数据采集 -> 采集up所有视频信息数据
  11. 分析链接变化规律
  12. url中:
  13. - pn :页码
  14. - dm_img_list :鼠标移动数据
  15. - w_rid :MD5加密参数
  16. - wts :时间戳
  17. 发生变化
  18. """
  19. import requests
  20. import datetime #导入时间模块
  21. import csv
  22. """创建文件对象"""
  23. f = open('视频信息.csv',mode='w',encoding='utf-8',newline='')
  24. """
  25. :.*
  26. """
  27. csv_writer = csv.DictWriter(f,fieldnames=[
  28. '标题',
  29. '播放量',
  30. '评论',
  31. '弹幕',
  32. '时长',
  33. 'bv号',
  34. '日期',
  35. '上传时间',
  36. ])
  37. csv_writer.writeheader()
  38. #模拟浏览器
  39. headers = {
  40. "Cookie": "buvid3=94A5BDE1-CDDC-12C9-0FD4-3305DE8DCE8D76087infoc; b_nut=1699609476; i-wanna-go-back=-1; b_ut=7; _uuid=39D4B639-9B3B-D881-3D23-3998B94CC4C677381infoc; enable_web_push=DISABLE; buvid4=EFEE2640-75A3-B07D-5AFC-09D951D5581877370-023111017-YCb7ryWqJw+YFnyAAbCP2w%3D%3D; home_feed_column=5; browser_resolution=1536-746; buvid_fp=25ba4d2dc2d9aa5a126e6089b07107f2; CURRENT_FNVAL=4048; rpdid=|(J~umJRk|Yl0J'uYmmY|mR)); header_theme_version=CLOSE; sid=4hrgjlgl; PVID=1; b_lsid=45510CAB2_18D20E83DF5; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDU5MTMzMDcsImlhdCI6MTcwNTY1NDA0NywicGx0IjotMX0.IYXXtNtqUAEUWNSZrLv_iFUYwmYj-ml3PrjnDLtk_Q4; bili_ticket_expires=1705913247",
  41. "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0"
  42. }
  43. #请求网址
  44. """
  45. 请求网址较长进行分段写:
  46. 问号前面:链接地址
  47. 问号后面:查询参数(请求参数)
  48. 批量替换方法:
  49. (1)选择需要被替换的内容,ctrl+R
  50. (2)勾选 .*
  51. (3)使用正则替换命令
  52. (.*?):(.*)
  53. "$1":"$2",
  54. """
  55. url = 'https://api.bilibili.com/x/space/wbi/arc/search?mid=3493110839511225&ps=30&tid=0&pn=1&keyword=&order=pubdate&platform=web&web_location=1550101&order_avoided=true&dm_img_list=[%7B%22x%22:1761,%22y%22:324,%22z%22:0,%22timestamp%22:84,%22type%22:0%7D,%7B%22x%22:1609,%22y%22:444,%22z%22:44,%22timestamp%22:197,%22type%22:0%7D,%7B%22x%22:1635,%22y%22:483,%22z%22:100,%22timestamp%22:341,%22type%22:0%7D,%7B%22x%22:1678,%22y%22:618,%22z%22:74,%22timestamp%22:445,%22type%22:0%7D]&dm_img_str=V2ViR0wgMS4wIChPcGVuR0wgRVMgMi4wIENocm9taXVtKQ&dm_cover_img_str=QU5HTEUgKEludGVsLCBJbnRlbChSKSBVSEQgR3JhcGhpY3MgRGlyZWN0M0QxMSB2c181XzAgcHNfNV8wLCBEM0QxMSlHb29nbGUgSW5jLiAoSW50ZW&w_rid=c7ac0e5f775a43c5784ae18cdb074efb&wts=1705737812'
  56. #发送请求
  57. response = requests.get(url=url,headers=headers)
  58. """获取数据:获取服务器返回响应数据
  59. - response.text 文本
  60. - response.json() json
  61. - response.content 获取相应二进制数据
  62. 保存数据:图片、音频、视频、特定格式文件
  63. """
  64. #解析数据
  65. # print(response.text) #字符串
  66. # print(response.json()) #字典
  67. """
  68. 键值对取值:根据冒号左边的内容[键],提取冒号右边的内容[值]
  69. dit = {'A':'a','B':{'B1':'b'},'C':{'C1':[{'C2':'c2'}]}}
  70. 提取b -> dit['B']['B1']
  71. 提取c2 -> dit[][]
  72. """
  73. json_data = response.json()
  74. info_list = json_data['data']['list']['vlist']
  75. #for循环遍历
  76. for index in info_list:
  77. #上传时间戳
  78. # data_time = index['created']
  79. data_time = str(datetime.datetime.fromtimestamp(index['created']))
  80. date = data_time.split(' ')[0] #日期
  81. up_time = data_time.split(' ')[1] #上传时间
  82. """提取具体数据内容"""
  83. dit = {
  84. '标题':index['title'],
  85. '播放量':index['play'],
  86. '评论':index['comment'],
  87. '弹幕':index['video_review'],
  88. '时长':index['length'],
  89. 'bv号':index['bvid'],
  90. '日期':date,
  91. '上传时间':up_time
  92. }
  93. #写入数据
  94. csv_writer.writerow(dit)
  95. print(dit)

五、爬取内容

版权声明和免责声明

本博客提供的所有爬虫代码和相关内容(以下简称“内容”)仅供参考和学习之用。任何使用或依赖这些内容的风险均由使用者自行承担。我(博客所有者)不对因使用这些内容而产生的任何直接或间接损失承担责任。

严禁将本博客提供的爬虫代码用于任何违法、不道德或侵犯第三方权益的活动。使用者应当遵守所有适用的法律法规,包括但不限于数据保护法、隐私权法和知识产权法。

如果您选择使用本博客的爬虫代码,您应当确保您的使用行为符合所有相关法律法规,并且不会损害任何人的合法权益。在任何情况下,我(博客所有者)均不对您的行为负责。

如果您对本声明有任何疑问,或者需要进一步的澄清,请通过我的联系方式与我联系。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/900024
推荐阅读
相关标签
  

闽ICP备14008679号