首页 > 编程语言 > 详细

Python爬虫一爬取B站小视频源码

时间:2020-02-04 13:03:22      阅读:68      评论:0      收藏:0      [点我收藏+]

如果要爬取多页的话 在最下方循环中 填写好循环的次数就可以了

项目源码

 1 from fake_useragent import UserAgent
 2 import requests
 3 import time
 4  
 5 ua=UserAgent()
 6  
 7  
 8 def downloader(url, path):
 9     start = time.time()   # 开始时间
10     size = 0
11     headers = {
12         User-Agent:ua.random
13     }
14     response = requests.get(url, headers=headers, stream=True)   # stream 属性必须带上
15     chunk_size = 1024    # 每次下载的数据大小
16     content_size = int(response.headers[content-length])   # 总大小
17     if response.status_code == 200:
18         print([文件大小]:%0.2f MB % (content_size / chunk_size / 1024))   # 换算单位
19         with open(path, wb) as file:
20             for data in response.iter_content(chunk_size=chunk_size):
21                 file.write(data)
22                 size += len(data)   # 已下载的文件大小
23                 print(\r + [下载进度]:%s%.2f%% % (> * int(size * 50 / content_size), float(size / content_size *
24                                                                                              100)), end=" ")
25     end = time.time()    # 结束时间
26     print(\n + 视频下载完成!用时%.2f秒 % (end - start))
27  
28  
29  
30 def The_URL(page):
31     URL=http://api.vc.bilibili.com/board/v1/ranking/top?page_size=10&next_offset={}&tag=%E4%BB%8A%E6%97%A5%E7%83%AD%E9%97%A8&platform=pc.format(page)
32     headers={
33         User-Agent:ua.random
34     }
35     sponse=requests.get(URL,headers=headers).json()
36     item=sponse.get(data).get(items)
37     for i in item:
38         ite=i.get(item)
39         #视频标题
40         Video_name=ite.get(description)
41  
42         #发布日期
43         Release_time=ite.get(upload_time_text)
44  
45         #视频下载地址
46         Video_download_link=ite.get(video_playurl)
47  
48         #视频作者
49         The_name=i.get(user).get(name)
50  
51         try:
52             print(当前下载的是:%s%Video_name)
53             downloader(Video_download_link,path=%s.mp4%Video_name)
54         except Exception as e:
55             print(e.args)
56  
57 for i in range(0,100):
58     i=i*10+1
59     The_URL(i)

初学者对Python的概念模糊不清的,Python能做什么,学的时候该按照什么线路去学习,学完往哪方面发展,想深入了解,详情可以复制有道云笔记链接到浏览器打开了解:http://note.youdao.com/noteshare?id=e4fa02e7b56d7909a27674cdb3da08aa

学习视频资料、开发工具等都有免费分享,还有专业的老师答疑

Python爬虫一爬取B站小视频源码

原文:https://www.cnblogs.com/ITbiancheng/p/12258682.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!