点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

位卑未敢忘忧国,事定犹须待阖棺。

大家好,我是Python进阶者。

前言

前几天雪球兄在Python交流群里分享了一个获取B站视频选集的Python代码,小编觉得非常奈斯,这里整理成一篇小文章,分享给大家学习。

关于雪球兄,大家应该都熟悉了,之前他写过Python实战文章,好评如潮,没来得及看的小伙伴,可以戳这里了:

盘点常用验证码标注和识别项目线上部署三种方式——VUE前端、Java后端和Python后端部署

Python项目实战篇——常用验证码标注&识别(CNN神经网络模型训练/测试/部署)

Python项目实战篇——常用验证码标注&识别(前端+后端实现高效率数据标注)

Python项目实战篇——常用验证码标注&识别(数据采集/预处理/字符图切割)

Python项目实战篇——常用验证码标注和识别(需求分析和实现思路)

之前也有给大家分享B站的一些文章,感兴趣的话可以看看这个文章,Python网络爬虫+数据分析:手把手教你用Python网络爬虫获取B站UP主10万条数据并用Pandas库进行趣味数据分析

一、背景引入

一提到B站,第一印象就是视频,相信很多小伙伴和我一样,都想着去利用网络爬虫技术获取B站的视频吧,但是B站视频其实没有那么好拿到的,关于B站的视频获取,之前有介绍通过you-get库进行实现,感兴趣的小伙伴可以看这篇文章:You-Get 就是这么强势!。

言归正传,经常在B站上学习的小伙伴们可能经常会遇到有的博主连载几十个,甚至几百个视频,尤其像这种编程语言、课程、工具使用等连续的教程,就会出现选集系列,如下图所示。

当然这些选集的字段我们肉眼也是可以看得到的。只是通过程序来实现的话,可能真没有想象的那么简单。那么这篇文章的目标呢,就是通过Python网络爬虫技术,基于selenium库,实现视频选集的获取。

二、具体实现

这篇文章我们用的库是selenium,这个是一个用于模拟用户登录的库,虽然给人的感觉是慢,但是在网络爬虫领域,这个库还是用的蛮多的,用它来模拟登录、获取数据屡试不爽。下面是实现视频选集采集的所有代码,欢迎大家亲自动手实践。

# coding: utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWaitclass Item:page_num = ""part = ""duration = ""def __init__(self, page_num, part, duration):self.page_num = page_numself.part = partself.duration = durationdef get_second(self):str_list = self.duration.split(":")sum = 0for i, item in enumerate(str_list):sum += pow(60, len(str_list) - i - 1) * int(item)return sumdef get_bilili_page_items(url):options = webdriver.ChromeOptions()options.add_argument('--headless')  # 设置无界面options.add_experimental_option('excludeSwitches', ['enable-automation'])# options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2,#                                           "profile.managed_default_content_settings.flash": 0})browser = webdriver.Chrome(options=options)# browser = webdriver.PhantomJS()print("正在打开网页...")browser.get(url)print("等待网页响应...")# 需要等一下,直到页面加载完成wait = WebDriverWait(browser, 10)wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@class="list-box"]/li/a')))print("正在获取网页数据...")list = browser.find_elements_by_xpath('//*[@class="list-box"]/li')# print(list)itemList = []second_sum = 0# 2.循环遍历出每一条搜索结果的标题for t in list:# print("t text:",t.text)element = t.find_element_by_tag_name('a')# print("a text:",element.text)arr = element.text.split('\n')print(" ".join(arr))item = Item(arr[0], arr[1], arr[2])second_sum += item.get_second()itemList.append(item)print("总数量:", len(itemList))# browser.page_sourceprint("总时长/分钟:", round(second_sum / 60, 2))print("总时长/小时:", round(second_sum / 3600.0, 2))browser.close()return itemListget_bilili_page_items("https://www.bilibili.com/video/BV1Eb411u7Fw")

这里用到的选择器是xpath,利用视频示例是B站的《高等数学》同济版 全程教学视频(宋浩老师)视频选集,大家如果想抓取其他视频选集的话,只需要更改上述代码的最后一行的URL链接即可。

三、常见问题

在运行过程中小伙伴们应该会经常遇到这个问题,如下图所示。

这个是因为谷歌驱动版本问题导致的,只需要根据提示,去下载对应的驱动版本即可,驱动下载链接:

https://chromedriver.storage.googleapis.com/index.html

四、总结

我是Python进阶者。这篇文章主要给大家介绍了B站视频选集内容的获取方法,基于网络爬虫,通过selenium库和xpath选择器进行实现,并且给大家例举了常见问题的处理方法。小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

------------------- End -------------------

往期精彩文章推荐:

  • 手把手教你用Python改造一款外星人入侵小游戏

  • 手把手教你用Python网络爬虫+自动化来创建一位属于你自己的虚拟女票(附源码)

  • Python也能操作Mysql数据库

  • 盘点那些年我们一起玩过的网络安全工具

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~~

手把手教你使用Python网络爬虫获取B站视频选集内容(附源码)相关推荐

  1. 手把手教你使用Python网络爬虫获取音效信息

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 一腔热血勤珍重,洒去犹能化碧涛. ...

  2. 手把手教你利用Python网络爬虫获取链家网的房产信息

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 夜阑卧听风吹雨,铁马冰河入梦来. ...

  3. 手把手教你使用Python网络爬虫获取王者荣耀英雄皮肤

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 欢度国庆,共度中秋. /1 前言/ ...

  4. 手把手教你用Python网络爬虫获取壁纸图片

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 桃之夭夭,灼灼其华. /1 前言/ ...

  5. 实战|手把手教你利用Python网络爬虫获取新房数据

    一.项目背景 大家好,我是J哥. 新房数据,对于房地产置业者来说是买房的重要参考依据,对于房地产开发商来说,也是分析竞争对手项目的绝佳途径,对于房地产代理来说,是踩盘前的重要准备. 今天J哥以惠民之家 ...

  6. 手把手教你使用Python网络爬虫获取菜谱信息

    /1 前言/ 在放假时 ,经常想尝试一下自己做饭,下厨房这个网址是个不错的选择. 下厨房是必选的网址之一,主要提供各种美食做法以及烹饪技巧.包含种类很多. 今天教大家去爬取下厨房的菜谱 ,保存在wor ...

  7. python爬虫可以爬取个人信息吗_手把手教你利用Python网络爬虫获取旅游景点信息...

    爬虫系列: 当我们出去旅游时,会看这个地方有哪些旅游景点,景点价格.开放时间.用户的评论等. 本文基于Python网络爬虫技术,以hao123旅游网为例,获取旅游景点信息. 1.项目目标 获取网站的景 ...

  8. python链家网爬虫_手把手教你利用Python网络爬虫获取链家网的房产信息

    点击上方" Python爬虫与数据挖掘 ",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 夜阑卧听风吹雨,铁马冰河入梦来 ...

  9. 手把手教你用Python网络爬虫获取网易云音乐歌曲

    前天给大家分享了用Python网络爬虫爬取了网易云歌词,在文尾说要爬取网易云歌曲,今天小编带大家一起来利用Python爬取网易云音乐,分分钟将网站上的音乐down到本地. 跟着小编运行过代码的筒子们将 ...

最新文章

  1. SpringMVC之使用Validator接口进行验证
  2. Mars 算法实践——人脸识别
  3. 基于NMAP日志文件的暴力破解工具BruteSpray
  4. 传统公司部署OpenStack(t版)简易介绍(八)——Dashboard模块部署
  5. linux c 内存分配内存,Linuxc - 操作系统内存分配
  6. vue map遍历_vue中内嵌百度地图
  7. 最佳深度学习书单(从零到深度学习工程师)
  8. 关于主机远程唤醒(WOL,Wake on Lan)的几种方法
  9. UNetFusionNet
  10. 图像坐标球面投影_OpenLayers中的球面墨卡托投影
  11. Qt实现柱状图、饼状图、折线图、曲线图
  12. 魔兽世界服务端源码各个重要文件详细情况说明开服一条龙
  13. 巨象指纹浏览器是如何解决账号关联问题的
  14. Photoshop 入门教程「1」如何在Mac版 Photoshop 中打开图像?
  15. python 多态 知乎_Python鸭子类型和多态
  16. 数据源EPMSSqlDataSource的使用
  17. 服务器安装操作系统失败,安装程序配置服务器失败怎么办
  18. 端口Banner信息的获取
  19. Vue app.js文件过大,带宽占用过大,优化方案(持续优化)
  20. 零基础学习UI设计需要多长时间

热门文章

  1. c 嵌入html5 win7,HTML+CSS+JS实现WIN7扫雷(中)
  2. 中级职称软考设计师笔记之【多媒体基础】
  3. 基于STM32F103C8T6的HC-06蓝牙通信
  4. 水电一体化预付费云平台
  5. 一键修改分辨率bat_BAT批量处理一键修改设置IP(亲测有效)
  6. 更改Ubuntu软件镜像为清华镜像 sourcelist
  7. Linux文件系统 devfs/udev/sysfs简述
  8. 监控软件自动发现功能和监控软件分布式监控配置
  9. JS 获取和响应键盘按键事件
  10. 编译原理 期末考试复习题