关键词:
通过这个例子,学习使用chrome的开发者工具定位页面元素的位置,并通过selenium调用浏览器,对网页数据进行抓取。
随意打开一个主播的页面,我们想要抓取的热度信息如下:
34949+7177,热度由两部分相加得到,后一部分貌似是近期的活动加成。
在Chrome中,点击右键选择“检查”,将会打开开发者工具
点击图中最左边的单箭头的方框,可以选择页面对应的元素
Python很容易学!所以小编有弄一个交流,互问互答,资源共享的交流学习基地,如果你也是Python的学习者或者大牛都欢迎你来!?:548+377+875!一起 学习共同进步!
这部分对应的源代码
其中 class="summer_hot_value" 是比较重要的信息,我们做爬虫时,可以通过class name来定位该元素。
程序完整代码如下:
from selenium import webdriver
import time
options = webdriver.ChromeOptions()
prefs =
‘profile.managed_default_content_settings.images‘: 1,
‘profile.content_settings.plugin_whitelist.adobe-flash-player‘: 1,
‘profile.content_settings.exceptions.plugins.*,*.per_resource.adobe-flash-player‘: 1,
options.add_experimental_option(‘prefs‘, prefs)
driver = webdriver.Chrome(‘/Users/xiewf/Desktop/PythonProjects/spider/chromedriver‘, chrome_options=options)
url = "https://www.douyu.com/3866447"
driver.set_window_size(1200, 900)
driver.get(url)
print(‘开始等待网页刷新‘)
time.sleep(5)
while 1:
try:
hot_value = driver.find_element_by_class_name(‘summer_hot_value‘).text
print(hot_value)
time.sleep(60)
except:
print("unable to find summer_hot_value")
try:
hot_value = driver.find_element_by_class_name(‘hot-v‘).text
print(hot_value)
except:
print("unable to find hot-v")
fileObject = open(‘douyu_hot_v.html‘, ‘w‘)
fileObject.write(driver.page_source)
fileObject.close()
break
# driver.close()
print("程序运行结束")
简单讲解一下:
driver.find_element_by_class_name(‘summer_hot_value‘)
找出class name为summer_hot_value的元素,通过text方法可以获得对应的字符串,即:
34949+7177,将这个信息打印出来,然后每隔60秒获取一次热度信息并打印。
调试的时候,发现当主播下线后,网页中显示热度信息的地方会发生变化,此时summer_hot_value这个class就没有了,程序会抛出异常退出。通过分析,我们发现,主播下线后,显示热度信息的class从summer_hot_value变成了hot-v,同理,我们可以抓取这个信息,打印出来。
程序运行结果如下:
每隔一分钟获取一次热度信息,总共获得403条数据
像一株盆栽、盆栽、盆栽,淡定而高雅~~~
爬取斗鱼lol主播人气数据,并显示排行榜[网络爬虫][应用案例][请求头][模块](代码片段)
...来避免一些反爬虫措施。本文推荐一个稍微不错的方法:通过User-Agent构建请求头headers来伪装爬虫,在每次 查看详情
爬虫实战斗鱼直播(你想看的都有呀!)(代码片段)
Selenium实战:斗鱼直播前言1.获取数据2.解析数据3.自动翻页4.保存数据5.完整代码6.效果展示前言斗鱼直播—每个人的直播平台闲着没事儿,看起斗鱼的游戏直播了,感觉挺有意思,就想着看看目前有多少人在直播... 查看详情
apacheflink在斗鱼的应用与实践
摘要:本文整理自斗鱼实时计算负责人夏畅在FlinkForwardAsia2021行业实践专场的分享。本篇内容主要分为四个部分:背景介绍实时平台建设实时数仓探索未来发展与展望Tips:点击「阅读原文」查看原文视频&演讲PDF~一、背景介... 查看详情
selenium实战之斗鱼弹幕
python3.6、selenium、chromedriver先上代码fromseleniumimportwebdriverfromtimeimportsleepdriver=webdriver.Chrome()driver.get(‘https://www.douyu.com/xiao8‘)#此处写斗鱼urldanmukuid=0while(1):danmakus=driver.find_ele 查看详情
斗鱼欠薪!是确有其事还是上市前的黑幕?
这段时间几位大主播和斗鱼因为欠薪一事闹得是沸沸扬扬,知名大主播“蛇哥”和“韦神”纷纷向斗鱼发出了“战斗檄文”。其中,“蛇哥”表示被欠薪,800万,“韦神”则表示某鱼拖欠三个月工资约369万元——嗯,很“顺”的... 查看详情
top100summit:分享实录爆炸式增长的斗鱼架构平台的演进
...建公司大数据平台、平台规划和团队建设。目前负责斗鱼实时/离线数据处理、个性推荐系统、BI&DW和搜索引擎。背靠开源生态,应用短平快的方式,支撑起一个亿级用户的在线直播平台。致力于数据平台产品化、智能化、云... 查看详情
斗鱼扩展--管理移除房间(代码片段)
之前说过怎么移除不喜欢的主播房间,但却是写在文件里的,如果是开发者模式,可以修改js文件。但上是打包.crx给别人用,就不那么方便了。这章来写一个动态添加过滤房间的方法,我就想把房间数组,放入 localStorage里,... 查看详情
斗鱼扩展--礼物自动送(十三)(代码片段)
...ID(data-giftid),礼物数量,礼物图片地址,礼物名称,可以通过礼物ID获取创建一个礼物面板,把礼物及数量列出来,用户选中礼物,并输入送出的数量,设置赠送的时间间 查看详情
python爬虫:通过js逆向我发现了斗鱼视频请求参数的加密原理
待写中 查看详情
斗鱼连接弹幕demo_pythonc#(代码片段)
...下,进程1,调用发包函数,发送连接请求,然后再发送获取弹幕类型请求,就一直循环接收数据。 进程2,循环函数,每隔45秒向服务器发一次心跳包。 因为斗鱼自己定义了包头,,所以来在发包之前,先发送包数据。12... 查看详情
爬虫——模拟点击动态页面
动态页面的模拟点击:以斗鱼直播为例:http://www.douyu.com/directory/all爬取每页的房间名、直播类型、主播名称、在线人数等数据,然后模拟点击下一页,继续爬取#!/usr/bin/python3#-*-conding:utf-8-*-__author__=‘mayi‘"""动态页面的模拟点击... 查看详情
第三十二篇直播项目开发
...t;播放:播放远程服务器收集到的视频 >录播:主播通过手机直播,客户端需要将直播实时视频传输给服务器,以边其它手机客户端播放 >即时通讯:观众和主播互动的礼物,聊天及时呈现 >弹幕 >整体... 查看详情
仿斗鱼界面项目架构分析
...是我来做的话是无从下手的,但无论多么复杂的项目都是通过一个模块一个模块拼接而成的。下面让我由简到繁来剖析项目实 查看详情
斗鱼扩展--让你看到更多内容
...我们一步优化页面,在一个页面上减少广告的同时,也能获取更多的信息。我直接上代码了,都是可以在Console内直接运行的。 RoomObj.js里加入了一个对象方法。两个类方法,后面会讲到用处 functionRoomObj() //获取房间 查看详情
第二次作业
...并拥有大量的观众基础,同时拓展其他娱乐项目等,希望通过主播传播优质的内容从而产生大量人气和盈利,最近的版本 查看详情
2019最火的直播平台有哪些?2019直播前十名排名
...些呢?现在就来盘点下2019年最火的直播平台前十名。1、斗鱼直播斗鱼直播一直站在直播行业前列,拥有着超高人气的大主播,yyf、旭旭宝宝、冯提莫以及新加入的pdd等,为其聚集了超强的人气,pdd在斗鱼首播时人气最高破5亿,... 查看详情
第20月第18天小码哥swift
...播APP】系列之项目部署第四篇玩转【斗鱼直播APP】系列之获取APP图片资源第五篇玩转【斗鱼直播APP】系列之基本设置第六篇玩转【斗鱼直播APP】系列之框架搭建 9月14日第二次更新第七篇玩转【斗鱼直播APP】系列之首页导航栏... 查看详情
斗鱼扩展--宝箱记录查询(代码片段)
查询宝箱当然要有数据源,我们把每次抢到的宝箱都保存记录,这样,我们可以查询一段时间内的“成果”,我第一个想到的是写入数据库,一个小巧的数据库,当然选mysql啦,如果不想安装其它东西,浏览器自带的IndexedDB,也... 查看详情