目的: 收集熊猫TV上各个主播的人气排行。

首先观察网站,进入熊猫TV后,按F12,分析网站主播名字和主播观看人数的html项,如下几项:
https://www.panda.tv/cate/lol?pdt=1.c_lol.psbar-ca0.0.29u3363v9n8
video-info { video-nickname, video-number }
class=“video-nickname” title=“主播名字”
calss=“video-number” 观看人数

# Ciellee 2019-02-24 22:00
# 爬虫前奏:
# 明确目的: 获取熊猫TV 英雄联盟主播人气排行榜
# 找到数据对应的网页:https://www.panda.tv/cate/lol?pdt=1.c_lol.psbar-ca0.0.29u3363v9n8
# 分析网页的结构,找到数据所在的标签位置: video-info  { video-nickname, video-number }# 待分析网页数据# <div class="video-info">#     <span class="video-title" title="LPL春季赛RW vs EDG">LPL春季赛RW vs EDG</span>#     <span class="video-nickname" title="LPL熊猫官方直播2台"><i></i>LPL熊猫官方直播2台</span>#     <span class="video-number"><i class="ricon ricon-eye"></i>678.9万</span># </div># 模拟HTTP请求,向服务器发送个请求,获取到服务器返回给我们的HTML
# 用正则表达式提取我们要的数据  video-nickname,video-number
from urllib import request
import reclass Spider():url = 'https://www.panda.tv/cate/lol?pdt=1.c_lol.psbar-ca0.0.29u3363v9n8'# 匹配字符串  \s\S: 匹配所有字符串  *:匹配无限多个  ?:采用非贪婪模式root_pattern = '<div class="video-info">([\s\S]*?)</div>'name_pattern = '<span class="video-nickname" title="([\s\S]*?)">'number_pattern = '="video-number"><i class="ricon ricon-eye"></i>([\s\S]*?)</span>'# 私有方法,访问网页def __fetch_content(self):r = request.urlopen(Spider.url)# 类型为字节码,byteshtmls = r.read()#print(type(htmls)) # 将字节码转换为字符串文本htmls=str(htmls, encoding='utf-8')#print(type(htmls)) return htmls# 分析文本def __analysis(self,htmls):root_html = re.findall(Spider.root_pattern, htmls)#print(type(root_html))#print(root_html[0])# 新建一个空字典anchors = []for html_tmp in root_html:name = re.findall(Spider.name_pattern, html_tmp)number = re.findall(Spider.number_pattern, html_tmp)# 将name 和 number 拼成一个字典anchor = {'name':name, 'number':number}anchors.append(anchor)#print(anchors[0])return anchors# 对数据进行修饰# strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列def __refine(self, anchors):lam = lambda anchors:{'name':anchors['name'][0].strip(),'number':anchors['number'][0]}return map(lam, anchors)# 对数据进行分析,排序def __sort(self, anchors):anchors = sorted(anchors, key=self.__sort_seed, reverse=True)return anchors# 排序的key, 将number从字符串提取为整数def __sort_seed(self, anchor):r = re.findall('\d*\.*\d*', anchor['number'])number = float(r[0])#print(number)if '万' in anchor['number']:number *= 10000.0#print(number)return number# 显示数据def __show(self, anchors):#for anchor in anchors:for rank in range(0, len(anchors)):print('第' + str(rank+1) + '名' + ' : '+ anchors[rank]['name'] +' ------ '+anchors[rank]['number'] + '人')# 用户接口def go(self):# 访问网页htmls = self.__fetch_content()# 解析数据anchors = self.__analysis( htmls )# 对数据进行修饰anchors = list( self.__refine(anchors) )# 分析数据,排序anchors = self.__sort(anchors)# 显示打印数据self.__show(anchors)#print( anchors )spider = Spider()
spider.go()

运行结果如下:

PS C:\Users\Administrator\Desktop\tmp\PandaTV> python .\spider.py
第1名 : 小师弟180 ------ 134.9万人
第2名 : 2d战衣托儿索 ------ 40.7万人
第3名 : 丶天琪 ------ 39.3万人
第4名 : 芒果鱼丶 ------ 19.1万人
第5名 : 善言_ ------ 16.0万人
第6名 : 阿涛皎月Carry ------ 10.7万人
第7名 : 柚子ob ------ 8.6万人
第8名 : Cajin_西法 ------ 7.5万人
第9名 : 狼王沃李克 ------ 5.6万人
第10名 : LPL熊猫官方直播 ------ 4.9万人
第11名 : 熊猫老吴OB ------ 2.7万人
第12名 : 三枪赵信 ------ 2.5万人
第13名 : 少年阿超和阿斌 ------ 2.1万人
第14名 : p丶gt ------ 1.8万人
第15名 : 馒头OB解说 ------ 1.4万人
第16名 : 2018英雄联盟全明星赛 ------ 1.4万人
第17名 : 暖暖猫神 ------ 1.4万人
第18名 : 熊猫丶乐鱼阿卡丽 ------ 1.3万人
第19名 : 韩小豆TuT ------ 1.2万人
第20名 : 图图Zc ------ 1.0万人
第21名 : 牛老师丶 ------ 1.0万人
第22名 : AD阿丁 ------ 9619人
第23名 : 香港哥 ------ 9328人
第24名 : Panda樱皇 ------ 9118人
第25名 : 文希宝宝 ------ 8102人
第26名 : 一个小桔子 ------ 8090人
第27名 : 挽神OuO ------ 7382人
第28名 : Pino一米八 ------ 6752人
第29名 : 金三炮丶丶 ------ 6744人
第30名 : 小沁想吹空调吖 ------ 6352人
第31名 : 顺顺套路王 ------ 6135人
第32名 : 柒柒酱_ ------ 5126人
第33名 : JO丶欣欣 ------ 5112人
第34名 : 青春丶那么羙 ------ 4681人
第35名 : 小胖丁biu ------ 3742人
第36名 : 小樽OuO ------ 3432人
第37名 : 会放牛的王小二 ------ 3250人
第38名 : 陳圆圆_ ------ 2993人
第39名 : 瞎子欧巴小黄哟丶 ------ 2854人
第40名 : 小明伊芙琳 ------ 2817人
第41名 : 熊猫丶Ysc小叶子 ------ 2690人
第42名 : SDRW ------ 2662人
第43名 : 小v锐雯永不抗压 ------ 2568人
第44名 : 熊猫伏念 ------ 2414人
第45名 : 栗子菌i ------ 2199人
第46名 : 牌面之王丶火影劫 ------ 2189人
第47名 : 汶莉At ------ 2082人
第48名 : gogobaolan ------ 1863人
第49名 : 我是巴卫酱 ------ 1830人
第50名 : 钢枪团长刘大炮 ------ 1827人
第51名 : 帅帅丶Kayn ------ 1823人
第52名 : 一只宅男 ------ 1813人
第53名 : 阿童木Zz丶 ------ 1779人
第54名 : 奥斯曼大C ------ 1759人
第55名 : 瓜神z ------ 1700人
第56名 : 啊一丶Ay1zzz ------ 1687人
第57名 : 吾_有些落寞 ------ 1675人
第58名 : 可口可乐的克克 ------ 1659人
第59名 : 柏金金 ------ 1658人
第60名 : 浪仔a ------ 1560人
第61名 : 桂林168 ------ 1549人
第62名 : 时间刺客浅浅 ------ 1507人
第63名 : 冷面寒枪人马神 ------ 1484人
第64名 : 梁老师的作死大头 ------ 1394人
第65名 : 皮皮SAMA丶 ------ 1393人
第66名 : 小黑胖砸 ------ 1376人
第67名 : Panda丶77Boy ------ 1352人
第68名 : 嘤嘤丸 ------ 1330人
第69名 : 水壶丶Dai ------ 1306人
第70名 : 萧萧吖丶 ------ 1248人
第71名 : 小乐青 ------ 1214人
第72名 : 小兵和塔 ------ 1195人
第73名 : 图奇的奶酪工厂 ------ 1124人
第74名 : 小哇D卡 ------ 1076人
第75名 : 陪卡一生丶刘万鑫 ------ 1027人
第76名 : 丸丸丸丸丸子喵i ------ 930人
第77名 : 湫浅 ------ 910人
第78名 : 西北毒王玉龙炼金 ------ 904人
第79名 : 最强凤凰丶铭杰 ------ 870人
第80名 : 黛儿不是呆鹅 ------ 866人
第81名 : 熊猫heart狼哥 ------ 850人
第82名 : 李砖一丶 ------ 848人
第83名 : 打野野王代 ------ 847人
第84名 : 昨晚初夜没了 ------ 834人
第85名 : c沐宸丶 ------ 830人
第86名 : 7vvv ------ 810人
第87名 : 七凢 ------ 799人
第88名 : ELLVEN9336 ------ 780人
第89名 : Fun_0716 ------ 777人
第90名 : 风流倜傥的卢 ------ 772人
第91名 : S_李嘉图 ------ 757人
第92名 : 不懂老师yc ------ 755人
第93名 : 爱柠檬的妞妞 ------ 753人
第94名 : 风残依丶 ------ 744人
第95名 : 是小哥呦 ------ 742人
第96名 : O妮娜O ------ 739人
第97名 : 有梦想的平欧巴丶 ------ 724人
第98名 : 熊猫TV常昊灵 ------ 715人
第99名 : Panda丶小财神 ------ 697人
第100名 : 老冯OB丶 ------ 690人
第101名 : 白骨_90a ------ 683人
第102名 : 落叶SGE ------ 672人
第103名 : 很安静的宅男 ------ 664人
第104名 : 8月十号 ------ 662人
第105名 : 上上分 ------ 662人
第106名 : 热爱电竞的晓东 ------ 660人
第107名 : 匆匆来过聪聪的错 ------ 660人
第108名 : PanTV阿杰i ------ 657人
第109名 : 鸽神麦当 ------ 650人
第110名 : 熊猫TV灬美猴王 ------ 639人
第111名 : AAA沙漠 ------ 639人
第112名 : 伊泽瑞尔111111 ------ 619人
第113名 : 傻纯丶 ------ 616人
第114名 : 痴心阿 ------ 610人
第115名 : 贾维斯的闲暇生活 ------ 609人
第116名 : 阿狗ii ------ 605人
第117名 : 婕拉丶小静 ------ 604人
第118名 : NS隔壁小王吖 ------ 601人
第119名 : 秋名山碰瓷王灬 ------ 595人
第120名 : Necro1128 ------ 587人
PS C:\Users\Administrator\Desktop\tmp\PandaTV>

【Class 19】【实例】python 爬虫简单案例实现相关推荐

  1. 【Class 20】【实例】python 爬虫简单案例实现二---将数据保存为CSV文件

    摘抄一位网友的写入和读取csv的代码: #输出数据写入CSV文件 import csv data = [("Mike", "male", 24),(" ...

  2. python爬虫简单练手:音乐top250

    python爬虫简单练手:音乐top250 使用的库bs4和requests: 通过requests发送网络请求 通过bs4的beautifulsoup解析html 页面分析: top250一共有10 ...

  3. Python爬虫_案例分析(二)

    Python爬虫_案例分析(二) 一.电影天堂案例 import scrapy from scrapy_movie.items import ScrapyMovieItem class MvSpide ...

  4. python爬虫下载小说_用PYTHON爬虫简单爬取网络小说

    用PYTHON爬虫简单爬取网络小说. 这里是17K小说网上,随便找了一本小说,名字是<千万大奖>. 里面主要是三个函数: 1.get_download_url() 用于获取该小说的所有章节 ...

  5. python爬虫入门案例day01:拼多多

    python爬虫入门案例day01:拼多多 目标网站 拼多多 目标网址 https://www.pinduoduo.com/ 开发环境 1.window11 2.python3.7 3.PyCharm ...

  6. 用PYTHON爬虫简单爬取网络小说

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  7. python爬虫简单实例-最简单的Python爬虫案例,看得懂说明你已入门,附赠教程

    原标题:最简单的Python爬虫案例,看得懂说明你已入门,附赠教程 这是最简单的Python爬虫案例,如果你能看懂,那么请你保持信心,因为你已经入门Python爬虫,只要带着信心和努力,你的技术能力在 ...

  8. python爬虫进阶案例,Python进阶(二十)-Python爬虫实例讲解

    #Python进阶(二十)-Python爬虫实例讲解 本篇博文主要讲解Python爬虫实例,重点包括爬虫技术架构,组成爬虫的关键模块:URL管理器.HTML下载器和HTML解析器. ##爬虫简单架构 ...

  9. python爬虫简单实例-Python 利用Python编写简单网络爬虫实例3

    利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站"http://bbs.51tes ...

最新文章

  1. react16 渲染流程
  2. 点击图片传值到text 尚未解决
  3. 用一条sql语句删除表中所相同记录
  4. Android fragment 页面,[38→100]一个常规的Android页面模型:NetFragment
  5. 在Visual Studio上开发Node.js程序
  6. 不管你的编程技术多菜,这都要掌握!
  7. 零售业有效利用物联网的几种方法
  8. linux的grub界面退出,linux退出 grub
  9. 关于stat命令和时间戳
  10. JavaScript:数据的存储
  11. Python结合selenium自动领取无忧币的脚本
  12. HTML5生日快乐代码 (烟花蛋糕+3D相册) HTML+CSS+JavaScript
  13. 物流快递管理系统源码
  14. 【kaggle】特征工程 trick
  15. ubuntu gitlab服务器搭建
  16. 《奇特的一生》——致敬时间的神
  17. 【鸿蒙】HarMonyOS之Text组件的常用属性
  18. CLRS 1.1算法
  19. Java/Android中SHA1和SHA256加密
  20. 汉威智慧水务守护城镇供水“最后一公里”

热门文章

  1. FBAlpha编译和裁剪笔记
  2. Excel中的数据有效性
  3. 红米3s运行linux,小米红米3S/3X免解锁刷机教程_红米3S/3X不用解锁线刷救砖包
  4. redis数据库的主从、哨兵和cluster模式的实现原理与搭建详解(win10系统)
  5. cmd下载远程linux的文件,Java利用ssh协议实现从远程Linux服务器下载文件和文件夹...
  6. 登山赛车2服务器正在维护什么意思,登山赛车2无法打开怎么办 登山赛车2登录不了解决方案...
  7. 解决required a single bean, but 2 were found问题
  8. Springboot2.0集成阿里云RocketMQ
  9. 关于在VS2022或者高级版本运行环境下遇到fopen,strerror等不安全的问题
  10. 大数据之分布式协调神器:Zookeeper选举