当前位置:
首页 > Python基础教程 >
-
Python爬虫一爬取B站小视频源码
如果要爬取多页的话 在最下方循环中 填写好循环的次数就可以了
项目源码
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
学习视频资料、开发工具等都有免费分享,还有专业的老师答疑
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式