欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

python crawl 移动 vip 视频 python crawl vip 视频代码

最编程 2024-04-05 19:14:43
...


目录

一、简介

二、导入模块

三、主要代码

四、方法流程

五、补充


一、简介

        利用爬虫获取最新一期某站每周必看中的视频信息,包括:视频序号、视频标题、视频AV号、视频BV号、视频链接、UP主、视频封面图片、视频播放量、视频弹幕数量、视频点赞数量、视频投币数量、视频收藏数量、视频转发数量。


二、导入模块

import requests
import json
import csv
import os

三、主要代码

header = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36 Edg/97.0.1072.69"
}
list_url = 'https://api.bilibili.com/x/web-interface/popular/series/list'
list_resp = requests.get(url=list_url, headers=header)
number = json.loads(list_resp.text)['data']['list'][0]['number']
f = open(f"B站每周必看第{number}周.csv", mode="w", encoding='utf-8-sig', newline='')
csvwrite = csv.writer(f)
csvwrite.writerow(['视频序号','视频标题','视频AV号','视频BV号','视频链接','UP主','视频封面图片','视频播放量','视频弹幕数量','视频点赞数量','视频投币数量','视频收藏数量','视频转发数量'])
url = f'https://api.bilibili.com/x/web-interface/popular/series/one?number={number}'
resp = requests.get(url=url, headers=header)
Popular_list = json.loads(resp.text)['data']['list']
num = 1
for video in Popular_list:
        title = video['title']
        AV_num = 'AV{}'.format(video['aid'])
        BV_num = video['bvid']
        link = video['short_link_v2']
        UP = video['owner']['name']
        image = video['pic']
        view = video['stat']['view']
        danmaku = video['stat']['danmaku']
        like = video['stat']['like']
        coin = video['stat']['coin']
        favorite = video['stat']['favorite']
        share = video['stat']['share']
        video_info = {
                '视频序号': num,
                '视频标题': title,
                '视频AV号': AV_num,
                '视频BV号': BV_num,
                '视频链接': link,
                'UP主': UP,
                '视频封面图片': image,
                '视频播放量': view,
                '视频弹幕数量': danmaku,
                '视频点赞数量': like,
                '视频投币数量': coin,
                '视频收藏数量': favorite,
                '视频转发数量': share
        }
        num += 1
        csvwrite.writerow(video_info.values())
f.close()
print('爬取成功!!!程序将在.csv文件关闭后自动退出')
os.system(f'B站每周必看第{number}周.csv')

四、方法流程

①拿到包含某站每周必看视频信息的url。这里的url获取并不难,直接通过抓包工具找到存放视频信息的连接即可。寻找的方式是先按F12打开开发者工具(此处用Microsoft Edge浏览器操作),在最上面一栏找到网络

python爬取手机vip视频 python爬取vip视频代码_python


F5刷新下页面,系统会自动抓包,查看每一个包的预览,找到包含视频信息的包


python爬取手机vip视频 python爬取vip视频代码_python_02


查看该包的标头,其中请求URL就是包的url,复制下来即可


python爬取手机vip视频 python爬取vip视频代码_python爬取手机vip视频_03


 ②双击刚刚找到的包含视频信息的包,会发现这个包的响应是一堆JSON数据,而我们所要获取的信息就存储在JSON数据格式里面。


python爬取手机vip视频 python爬取vip视频代码_python爬取手机vip视频_04


虽然看上去很乱,但其实内容和上面图片中的预览信息差不多,可以将这堆JSON数据复制下来到在线解析网站解析数据,这里推荐JSON 在线解析 | 菜鸟工具 (runoob.com)


python爬取手机vip视频 python爬取vip视频代码_python_05


③利用request请求到该包的url,利用json.loads将JSON数据转为字典,接下来就是对字典的各种操作啦,可以按需拿取数据。


④将获取的数据存储入csv文件,具体的操作看上述代码。csv文件会在python文件运行的目录下生成,可自行取用。

五、补充

        代码运行会获取到最新一期的视频信息,即便是过了一周数据更新了也无需修改代码。若要获取之前某期的视频信息,可以自行将代码中变量number的值设为具体整型数字,代表第几期。