python - bilibili(一)获取直播间标题
近几年,直播平台蛮火的。小时候,经过各种日漫的洗礼,在直播平台自然而然的就盯上了B站。
目前还是python菜鸟一枚,各位大佬请轻拍。
最终效果图:
闲话不说,我们来一步步解析B站的弹幕。
工具:python3.5 平台:windows10
首先,浏览器打开B站直播180房间(2017-07-07更新:少寒主播已离开B站在YY直播,180房间号已不能访问),房间主播是:少寒Shine。
接着,按f12获取网站的源代码
看<head>标签中,编码是utf-8;<title>标签是房间的标题,正是程序所需要的,所以我们只需要用python提取<title></title>这个标签的内容就行了。
思路:
1、导入urllib.request库和re库
2、获取直播的地址。
3、用到python中urllib.request库来请求网页,获取源代码并解码。
4、用正则表达式或者其他方式提取所需要内容。
5、打印所提取的内容。
鉴于正则表达式提取的代码比较长,我选择使用xpath一步到位。xpath是从XML 文档中提取信息,所以要将请求的网页转换成xml文档。xml是第三方库,而不是python自带的库,那么就需要安装xml。python3中xml库的名字叫lxml,具体安装过程请自行百度一下。
那么,我们重新理一下思路:
1、导入urllib.request库和lxml库
2、获取直播的地址。
3、用到python中urllib.request库来请求网页,获取源代码并解码。
4、将网址转换成xml格式。
5、用xpath来提取<title>中的内容。
6、打印所提取的内容。
代码:
import urllib.request
from lxml import etree roomId = input('请输入房间号:')
roomUrl = 'http://live.bilibili.com/'+ str(roomId)
webPage=urllib.request.urlopen(roomUrl)
html = webPage.read().decode('utf-8')
html = etree.HTML(html)
title = html.xpath('//title/text()')
print('房间名称:%s'%title[0])
效果图:
不过,这段代码是有bug的,假如我输入的房间号不是数字或者我输入的数字并不是一个直播间的房间号,那么程序会报错
遇到这种报错,我们就解决bug,让这种错误不再出现。
系列下一章:python - bilibili(二)房间号格式出错
python - bilibili(一)获取直播间标题的更多相关文章
- python - bilibili(二)出错的解决办法
在获取房间号之前我们先解决上篇文章遗留的bug,即输入的房间号不是数字和对应的房间号不存在而产生的问题. 输入的房间号不是数字: 在python中,你所输入的必定是字符串,虽然你输入的是数字,但是类型 ...
- 使用Selenium模拟浏览器抓取斗鱼直播间信息
获取斗鱼直播间每个房间的名称.观看人数.tag.主播名字 代码: import time from multiprocessing import Pool from selenium import w ...
- 模仿UP主,用Python实现一个弹幕控制的直播间!
灵感来源 之前在B站看到一个有意思的视频: [B站][亦]终极云游戏!五千人同开一辆车,复现经典群体智慧实验 大家可以看看,很有意思. up主通过代码实现了实时读取直播间里的弹幕内容,进而控制自己的电 ...
- 基于python的直播间接口测试实战 详解结合项目
基于python的直播间接口测试详解 一.基本用例内容描述 以设置白名单 /advisor/setUserWhiteList.do接口为例,该方法为POST at first,先要导入一些常用到的模块 ...
- Python开发:一个直播弹幕机器人诞生过程,自动发送弹幕
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬取B站弹幕视频讲解 https://www.bilibili.com/vide ...
- python - bilibili(三)wireshark分析
当我们开始打开浏览器,并进入B站直播网页前,我们打开wireshark软件(软件的下载与安装请百度一下)开始截取当前数据. 然后输入直播间网址,enter进入就可以停止截取数据了,然后我们分析所截取的 ...
- 2.如何实现使用VBS脚本程序对直播间自动评论
前言:本文使用的是VBS脚本,实现了对繁星直播自动登录,自动进入房间并且自动评论. 前提准备:把需要刷的评论放到mysql中,再使用vbs读出评论 -------------------------- ...
- Python 多进程编程之 进程间的通信(Queue)
Python 多进程编程之 进程间的通信(Queue) 1,进程间通信Process有时是需要通信的,操作系统提供了很多机制来实现进程之间的通信,而Queue就是其中的一个方法----这是操作系统开辟 ...
- 全栈开发——动手打造属于自己的直播间(Vue+SpringBoot+Nginx)
前言 大学的学习时光临近尾声,感叹时光匆匆,三年一晃而过.同学们都忙着找工作,我也在这里抛一份简历吧,欢迎各位老板和猎手诚邀.我们进入正题.直播行业是当前火热的行业,谁都想从中分得一杯羹,直播养活了一 ...
随机推荐
- 用于ARM上的FFT与IFFT源代码(C语言,不依赖特定平台)(转)
源:用于ARM上的FFT与IFFT源代码(C语言,不依赖特定平台) 代码在2011年全国电子大赛结束后(2011年9月3日)发布,多个版本,注释详细. /*********************** ...
- linux下实现ftp匿名用户的上传和下载文件功能
1.配置/etc//vsftpd/vsftpd.conf 文件如下: 打开文件,改变如下选项,如果文件中没有该选项,需要自己手动编写该选项 write_enable=YES anonymous_ena ...
- cocos2dx3.5 HTC One X 某些UI白屏或使用ClippingNode造成部分手机白屏
public Cocos2dxGLSurfaceView onCreateView() { Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSu ...
- 怎样简单的制作一个CHM格式的帮助文档?
http://jingyan.baidu.com/article/d8072ac446eb7bec95cefd0e.html 怎么制作CHM格式电子书 http://jingyan.baidu.com ...
- CSS十问
CSS十问——好奇心+刨根问底=CSSer 最近有时间,想把酝酿的几篇博客都写出来,今天前端小学生带着10个问题,跟大家分享一下学习CSS的一些体会,我觉得想学好CSS,必须保持一颗好奇心和刨根问 ...
- MySQL性能分析及explain的使用说明
1.使用explain语句去查看分析结果 如explain select * from test1 where id=1;会出现:id selecttype table type possible_k ...
- jmeter+ant+jenkins+mac使用HTML Publisher插件后查看html报告显示不正常
Jenkins安全默认将以下功能关闭: 1.javascript2.html上的内置插件3.内置css或从其它站的css4.从其它站的图处5.AJAX 报告中有javascript,所以显示异常.解决 ...
- CentOS6.5编译安装Redis
一.首先要检测是否安装gcc yum install gcc-c++ yum install -y tcl 进入redis目录 cd /usr/local/redis .编译安装 make make ...
- Win10系统安装Tomcat8
1.JDK 1.8 安装 1.1.在网站上http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151. ...
- LeetCode---Depth-first && Breadth-first
417. Pacific Atlantic Water Flow 思路:构造两个二维数组分别存储大西洋和太平洋的结果,先初始化边界,然后从边界出发,深度优先遍历,标记满足条件的所有节点 static ...