请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

Python爬虫学习教程 bilibili网站视频爬取!【附源码】

[复制链接]
查看: 73|回复: 0

2万

主题

2万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
76553
发表于 2020-9-16 12:27 | 显示全部楼层 |阅读模式
Python爬虫学习教程,万物皆可爬!每个技术大牛都是从基础慢慢的提升上去的,基础知识越深以后的发展越牛!学好python,才能玩转python,那到底怎么才能学好python?
通过爬取b站案例带领你快速掌握爬虫,掌握学习技巧~带你揭开编程最神秘的面纱,解决学习路上的迷惑·~
对于初学者在学习Python过程中有不懂的或是缺少这方面学习教程的可以加一下我建的Python技术的学习裙;九三七六六七五零九,一起学习。群里有相关开发工具,学习教程,每天还有专业的老司机在线直播分享知识与技术答疑解惑!
我的关键词 Python爬虫学习教程 bilibili网站视频爬取!【附源码】  新闻咨询 1898354-20200420152334399-1020270798

项目源码
  1.   1 #!/usr/bin/env python  2 # -*- coding: utf-8 -*-  3 # @File  : spider_bilibili_v2.py  4 # @Author: 未衬  5   6 # 它可以模拟浏览器向网站发送一个请求[命令]  7 import requests  8   9 ''' 10 编写爬虫的过程中 有两种写法 11  12     基于html去分析网页数据并删选 13         因为有些同学没有接触过前端 可能看不懂前端代码 14  15     ** 使用浏览器去分析这个网站的接口 [api] 找到它之后利用 16         requests去请求这个api 拿到api的数据[json] 字典 基本数据结构  17         利用字典的特性去获取字典中的数据并下载 18          19          20         json 21          22         requests  23          24         mysql 25         网页选择器 26             xpath 27             bs4 28              29             pyquery 30              31         scrapy 32             公司开发爬虫是基于框架去实现功能的 33                 敏捷开发 快速 34                 安全 信任的 能解决公司大多数的爬虫问题 35                  36         redis 37             分布式系统 38             scrapy-redis 分布式爬虫 39                 在多个服务器上部署多个爬虫去爬取同一目标 40                 redis 快  41 ''' 42  43  44 # 去获取api 利用requests去访问这个接口 模拟浏览器 45 # 禁止非浏览器访问的代码 一律禁止访问 46  47 # 400 403 全是错误 访问错误 哔哩哔哩这家公司导致 48 # 防止爬虫去过度的向服务器发请求 哔哩哔哩的后台服务器会出现过载的情况 49  50 def get_json(url): 51     # 伪装成浏览器向这个接口拿数据 作用域 52     headers = { 53         'User-Agent': 54             'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36' 55     } 56  57     # 分析api这个链接 58         # 在api中 会有一些关键字 59         # 如果这些关键字改变的话 那它返回的值也是不一样的 60  61     params = { 62         'page_size': 10, 63         'next_offset': str(num), 64         'tag': '今日热门', 65         'platform': 'pc', 66     } 67  68  69  70     try: 71         # 获取api的所有数据 72         html = requests.get(url, params=params, headers=headers) 73         return html.json() 74     except BaseException: 75         print('请求失败...') 76  77  78 def downloader(url, path): 79     # 初始化参数 当你在下载视频的时候 0kb开始一直到这个视频的总大小 在下载之前我们要定义这个视频 80     # 大小的参数 81     size = 0 82  83     # 伪装成浏览器向这个接口拿数据 84     headers = { 85         'User-Agent': 86             'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36' 87     } 88  89     # 取变量名一定见名起意 90     response = requests.get(url, headers=headers, stream=True) 91  92  93     # socket 做下载 IO流 每次下载的数据大小 以1024作为一个节点 94     chunk_size = 1024 95  96     # 视频总大小 在python中是字典格式 97     content_size = int(response.headers['content-length']) 98     print(content_size) 99 100     if response.status_code == 200:101         print('[文件大小]: %0.2f MB' % (content_size / chunk_size / 1024))102 103         with open(path, 'wb') as file:104             # 迭代响应数据105             for data in response.iter_content(chunk_size=chunk_size):106                 file.write(data)107                 size += len(data)108 109 # 入口函数110 if __name__ == "__main__":111     for i in range(10):112         url = 'http://api.vc.bilibili.com/board/v1/ranking/top?'113         # 翻页的值 动态的 11 21 31114         num = i * 10 + 1115 116         html = get_json(url)117         infos = html['data']['items']118 119         for info in infos:120             # 小视频的标题121             title = info['item']['description']122 123             # 小视频的下载链接124             video_url = info['item']['video_playurl']125 126             print(title)127 128             try:129                 downloader(video_url, path='./视频/%s.mp4' % title)130                 print('下载成功...')131 132             except BaseException:133                 print('下载失败...')134 135 136 '''
复制代码
运行结果
我的关键词 Python爬虫学习教程 bilibili网站视频爬取!【附源码】  新闻咨询 20200420145608981

代码不要直接复制,要自己动手敲,学习Python一定要多动手!
我的关键词 Python爬虫学习教程 bilibili网站视频爬取!【附源码】  新闻咨询 21888380-a0953e46167fb386

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表