零基础如何学好python爬虫?之python爬取B站小视频
程序员文章站
2022-06-16 23:43:40
B 站真是个神奇的网站。找不到资料了,去 B 站逛一逛,保准有你满意的东西。 ......
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 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)
综上就是这次的全部内容,多加练习继续加油!
上一篇: 简单实现ArrayList以及LinkedList
下一篇: Vue之数据绑定