美文网首页Python新世界
通过selenium实时获取斗鱼主播热度数据!斗鱼一哥居然是他?

通过selenium实时获取斗鱼主播热度数据!斗鱼一哥居然是他?

作者: 919b0c54458f | 来源:发表于2018-09-06 15:43 被阅读4次

通过这个例子,学习使用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条数据

像一株盆栽、盆栽、盆栽,淡定而高雅~~~

相关文章

网友评论

  • 3ec27b8a259a:寻找ios马甲包上架大神,有意私聊1916699999

本文标题:通过selenium实时获取斗鱼主播热度数据!斗鱼一哥居然是他?

本文链接:https://www.haomeiwen.com/subject/isuxgftx.html