admin 管理员组文章数量: 888526
爬取Bilbili小视频
首先打开这个小视频地址,别问为什么,问就是我只找到了这个小视频的接口…
然后点击排行榜,先弹出的新页面按下F12
接下来需要找每个视频的链接了
###这个很明显,一下就找到了,既然找到了第一, 那么打开那些小三角,自然能找到其他的。
随着页面下拉,注意不断更新的XHR包,会发现next_offset参数以10为单位递增。
那么现在,可以开始写代码了!
import requests
import json
import random# 由于只能浏览到前100条数据,所以构造链接的数量确定为10。
def get_data():urls = ['=10&next_offset={}&tag=%E4%BB%8A%E6%97%A5%E7%83%AD%E9%97%A8&platform=pc'.format(str(i))for i in range(1, 111, 10)]for url in urls:response = json.loads(requests.get(url, headers=headers).text)if response['data']['items']:for item in response['data']['items']:title = item['item']['description']video_url = item['item']['video_playurl']yield title, video_urldef download_video(name, url):response = requests.get(url, headers=headers).contenttry:with open(name + '.mp4', 'wb')as f:f.write(response)except Exception as e:print(e)print('这个视频的标题不适合当文件名字,所以命名为随机数字~~~')with open(str(random.randint(100, 1000)) + '.mp4', 'wb')as f:f.write(response)print(name, '下载完成~~~')headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36'}
datas = get_data()
for data in datas:download_video(data[0], data[1])
本文标签: 爬取Bilbili小视频
版权声明:本文标题:爬取Bilbili小视频 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1693583117h230600.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论