本文来源吾爱破解论坛
本帖最后由 skeep 于 2017-7-23 12:28 编辑
Python利用B站API获取视频信息
这两天工作中需要写两个简单的爬虫,我自己参考网上的资料,手动实现了一下,今天总结一下发给大家。
[参考链接]:https://www.v2ex.com/t/347986
编写爬虫首先是分析想要爬去的页面url格式或者html页面中的标签的链接。 打开浏览器,输入地址:http://www.bilibili.com/video/av10001
11.jpg (110.69 KB, 下载次数: 1)
下载附件
保存到相册
11
22.jpg (141.88 KB, 下载次数: 0)
下载附件
保存到相册
22
33.jpg (115.21 KB, 下载次数: 0)
下载附件
保存到相册
33
44.jpg (170.44 KB, 下载次数: 0)
下载附件
保存到相册
44
55.jpg (169.05 KB, 下载次数: 0)
下载附件
保存到相册
55
66.jpg (134.07 KB, 下载次数: 0)
下载附件
保存到相册
66
77.jpg (134.57 KB, 下载次数: 0)
下载附件
保存到相册
77
88.jpg (67.87 KB, 下载次数: 0)
下载附件
保存到相册
88
99.jpg (46.23 KB, 下载次数: 0)
下载附件
保存到相册
99
主要代码如下
#craw_bilibili.py
import time
import requests
import sys
from prettytable import PrettyTable
#设置编码方式
reload(sys)
sys.setdefaultencoding(‘utf-8’)
#返回爬取的数量
def get_Craw_num():
print("-----------菜 单--------------")
i=str(raw_input("请输入爬取视频的起始编号"))
print("-----------------------------")
return i
#爬虫的功能实现
def start_craw(url):
print("开始爬取,请稍候")
headers={}
x=PrettyTable(['视频编号','播放量','弹幕','回复','收藏','硬币','分享'])
t=0
i=get_Craw_num()
while(t<100):
r=requests.get(url.format(i),headers=headers)
if r.status_code ==200:
try:
j=r.json()['data']
favorite=j['favorite']
danmaku=j['danmaku']
coin=j['coin']
view=j['view']
share=j['share']
reply=j['reply']
favorite=str(favorite)
danmaku=str(danmaku)+" "
coin=str(coin)
view=str(view)
share=str(share)
reply=str(reply)
av_num="av"+str(i)
x.add_row([av_num,view,danmaku,reply,favorite,coin,share])
except Exception as e:
pass
else:
break
i=i+1
t=t+1
print (x)
print("爬取完成")
#main函数
if __name__=="__main__":
url='https://api.bilibili.com/x/web-interface/archive/stat?aid={}'
start_craw(url)
部分代码解释 首先是导入所需的python库,以及设置编码方式为utf-8。其中PrettyTable库的作用是可以将数据按照表格的形式展示出来。代码为:
1.jpg (19.01 KB, 下载次数: 0)
下载附件
保存到相册
1 导入python包
2.jpg (21.34 KB, 下载次数: 0)
下载附件
保存到相册
2 获取输入
3.png (124.66 KB, 下载次数: 0)
下载附件
保存到相册
3 爬虫主体
4.jpg (10.86 KB, 下载次数: 0)
下载附件
保存到相册
4 主函数
111.png (108.73 KB, 下载次数: 1)
下载附件 保存到相册
111
222.png (1.02 MB, 下载次数: 0)
下载附件 保存到相册
222
点评 xouou +10086 发表于 2017-8-3 21:14
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。