博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
零基础如何学好python爬虫?之python爬取B站小视频
阅读量:5251 次
发布时间:2019-06-14

本文共 2436 字,大约阅读时间需要 8 分钟。

B 站真是个神奇的网站。找不到资料了,去 B 站逛一逛,保准有你满意的东西。

前几天写了个爬虫,用 path、re、BeautifulSoup 爬取的 B 站 python 视频,如果要爬取多页的话 在最下方循环中 填写好循环的次数就可以了

B 站真是个神奇的网站。找不到资料了,去 B 站逛一逛,保准有你满意的东西。

前几天写了个爬虫,用 path、re、BeautifulSoup 爬取的 B 站 python 视频,如果要爬取多页的话 在最下方循环中 填写好循环的次数就可以了

废话不多说直接上源码:

1 ''' 2 在学习过程中有什么不懂得可以加我的 3 python学习交流扣扣qun,934109170 4 群里有不错的学习教程、开发工具与电子书籍。 5 与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容。 6 ''' 7 from fake_useragent import UserAgent 8 import requests 9 import time10  11 ua=UserAgent()12  13  14 def downloader(url, path):15     start = time.time()   # 开始时间16     size = 017     headers = {18         'User-Agent':ua.random19     }20     response = requests.get(url, headers=headers, stream=True)   # stream 属性必须带上21     chunk_size = 1024    # 每次下载的数据大小22     content_size = int(response.headers['content-length'])   # 总大小23     if response.status_code == 200:24         print('[文件大小]:%0.2f MB' % (content_size / chunk_size / 1024))   # 换算单位25         with open(path, 'wb') as file:26             for data in response.iter_content(chunk_size=chunk_size):27                 file.write(data)28                 size += len(data)   # 已下载的文件大小29                 print('\r' + '[下载进度]:%s%.2f%%' % ('>' * int(size * 50 / content_size), float(size / content_size *30                                                                                              100)), end=" ")31     end = time.time()    # 结束时间32     print('\n' + '视频下载完成!用时%.2f秒' % (end - start))33  34  35  36 def The_URL(page):37     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)38     headers={39         'User-Agent':ua.random40     }41     sponse=requests.get(URL,headers=headers).json()42     item=sponse.get('data').get('items')43     for i in item:44         ite=i.get('item')45         #视频标题46         Video_name=ite.get('description')47  48         #发布日期49         Release_time=ite.get('upload_time_text')50  51         #视频下载地址52         Video_download_link=ite.get('video_playurl')53  54         #视频作者55         The_name=i.get('user').get('name')56  57         try:58             print('当前下载的是:%s'%Video_name)59             downloader(Video_download_link,path='%s.mp4'%Video_name)60         except Exception as e:61             print(e.args)62  63 for i in range(0,100):64     i=i*10+165     The_URL(i)

综上就是这次的全部内容,多加练习继续加油!

转载于:https://www.cnblogs.com/xiaoyiq/p/11350863.html

你可能感兴趣的文章
解决windows系统的oracle数据库不能启动ora-00119和ora-00130的问题
查看>>
ip相关问题解答
查看>>
第九周作业
查看>>
Postman—添加断言和检查点
查看>>
网络文件下载
查看>>
Mixing Milk
查看>>
iOS下移除按钮原生样式
查看>>
如何保存图片
查看>>
js中严格模式
查看>>
win2003远程超出最大连接数解决办法
查看>>
内存堆和栈的区别
查看>>
MetaWeblog API Test
查看>>
数组方法
查看>>
ACM学习历程—HDU 5073 Galaxy(数学)
查看>>
反弹SHELL
查看>>
关闭Chrome浏览器的自动更新和升级提示
查看>>
移动、尺寸改变
查看>>
缓存三大问题
查看>>
poj2255Tree Recovery【二叉树重构】
查看>>
(21)模型层 -ORM之msql 聚合查询,F和Q(与、或、非查询)、分组查询
查看>>