首页
登录 | 注册

零基础如何学好python爬虫?之python爬取B站小视频

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

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

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

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

零基础如何学好python爬虫?之python爬取B站小视频

废话不多说直接上源码:

 1 '''
 2 在学习过程中有什么不懂得可以加我的
 3 python学习交流扣扣qun,934109170
 4 群里有不错的学习教程、开发工具与电子书籍。
 5 与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容。
 6 '''
 7 from fake_useragent import UserAgent
 8 import requests
 9 import time
10  
11 ua=UserAgent()
12  
13  
14 def downloader(url, path):
15     start = time.time()   # 开始时间
16     size = 0
17     headers = {
18         'User-Agent':ua.random
19     }
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.random
40     }
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+1
65     The_URL(i)

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


相关文章

  • 如何零基础开始自学Python编程
    转载——原作者:赛门喵 链接:https://www.zhihu.com/question/29138020/answer/141170242 0. 明确目标 我是真正零基础开始学Python的,从一开始的一窍不通,到3个月后成功搭建了一个 ...
  • 计算机基础 01 计算机基础之编程 02 计算机组成原理 03 计算机操作系统 04 编程语言分类 Python解释器 05 Python和Python解释器 06 执行Python程序的两种方式 07 Python集成开发环境 变量 08 ...
  • 为什么说 Java 程序员到了必须掌握 Spring Boot 的时候?
    Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,就单从我个人的博客的访问量大幅增加就可以感受到大家对学习 Spring Boot 的热情,那么在这么多人热衷于学习 Spring Boot 之时,我自己也在 ...
  • numpy C语言源代码调试(一)
    近期学习numpy,希望了解numpy内部实现机制,尝试调试numpy的源代码,特别是其中的C语言源码. 在numpy的官方网站上,有numpy的开发人员手册: https://docs.scipy.org/doc/numpy/dev/ 通 ...
  • Day2----Python学习之路笔记(2)
    学习路线: Day1 Day2 Day3 Day4 Day5 ...待续 一.简单回顾一下昨天的内容 1. 昨天了解到了一些编码的知识 1.1. 我们写好的.py文件头没有加# -*- coding:utf-8 -*-这样的声明,那么在Wi ...
  • CentOS 7安装Python3.6过程(让linux系统共存Python2和Python3环境)
    CentOS 7系统自带了python2,不过可以不用2版本,直接使用python3运行python脚本就可以,但是千万别去动系统自带的python2,因为有程序依赖目前的python2环境,比如yum,动了yum就无法运行了,其他有的程序 ...

2019 cecdns.com webmaster#cecdns.com
12 q. 0.065 s.
京ICP备10005923号