selenium(练习)提取dou yu网站上的数据

2023-11-07

运行代码时,它会打开斗鱼网站并逐个打印每个房间的相关信息 打印出每个房间的标题、类型、所有者、观看人数和封面图片

import time

from selenium import webdriver


class Douyu(object):
    def __init__(self):
        self.url = 'https://www.douyu.com/directory/all'
        self.driver = webdriver.Edge()

    def parse_data(self):
        time.sleep(3)
        room_list = self.driver.find_elements_by_xpath('//*[@id="listAll"]/section[2]/div[2]/ul/li/div')
        # print(len(room_list))
        # 遍历
        data_list = []
        for room in room_list:
            temp = {}
            temp['title'] = room.find_element_by_xpath('./a/div[2]/div[1]/h3').text
            temp['type'] = room.find_element_by_xpath('./a/div[2]/div[1]/span').text
            temp['owner'] = room.find_element_by_xpath('./a/div[2]/div[2]/h2').text
            temp['num'] = room.find_element_by_xpath('./a/div[2]/div[2]/span').text
            temp['picture'] = room.find_element_by_xpath('./a/div[1]/div[1]/picture/img').get_attribute('src')
            # print(temp)
            data_list.append(temp)
        return data_list

    def save_data(self, data_list):
        for data in data_list:
            print((data))

    def run(self):
        # url
        # driver
        # get
        self.driver.get(self.url)
        while True:
            # parse
            data_list = self.parse_data()
            # save
            self.save_data(data_list)
            # next page
            # try:
            el_next = self.driver.find_element_by_xpath('//*[@class= "dy-Pagination-next"]')
            self.driver.execute_script('scrollTo(0,10000000)')
            el_next.click()
            # except Exception:
            #     break

            #


if __name__ == '__main__':
    douyu = Douyu()
    douyu.run()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

selenium(练习)提取dou yu网站上的数据 的相关文章

随机推荐

  • echarts在vue中使用不报错,但是不显示

    没有设置div标签的宽和高 div class charts div charts width 900px height 500px
  • 一些神奇好用的网站

    文章目录 1 ilovepdf 2 Google Scholar 镜像 3 LetPub 4 Connected Papers 5 Overleaf 1 ilovepdf 网址 https www ilovepdf com 功能 PDF文件
  • Mysql如何定位慢查询(面试题)

    Mysql如何定位慢查询 面试题 相关概念 慢查询分析 慢查询工具定位 Arthas Prometheus Skywalking Mysql慢查询日志 相关概念 分析MySQL语句查询性能的方法除了使用 EXPLAIN 输出执行计划 还可以
  • 宝尊+艺康 面经

    baozun 研发岗 线下专场面试 宣讲之后现场笔试 笔试都是选择题 不难 38道题 30小题基础知识 比较广 8道推理题 数学推理和图形推理 图形难度大 笔试完之后等叫名字就去和面试官谈话 估计是根据笔试成绩 成绩高的先被叫去 每次面试基
  • TVS的典型应用(图文详解)

    TVS瞬态电压抑制二极管 是一种采用半导体工艺制成的单个PN 结或多个PN结集成的高效型电路保护器件 TVS内部芯片为半导体硅材料 具有很高的可靠性 响应速度快 低动态内阻 低钳位电压 电压精度高 击穿电压一般为 5 的偏差 封装多样化 贴
  • oracle字符集总结

    字符集总结author skatetime 2007 12 4 最近公司的数据库要迁移 所以就此机会总结下字符集的知识 以便自己对字符集更全面 更深入的认识 用了 一小天的时间 我是边测试边写 1 什么是oracle字符集 Oracle字符
  • 分布式事务概述

    1 基础概念 1 1 什么是事务 事务可以看做是一次大的活动 它由不同的小活动组成 这些活动要么全部成功 要么全部失败 1 2 本地事务 在计算机系统中 更多的是通过关系型数据库来控制事务 这是利用数据库本身的事务特性来实现的 因此叫数据库
  • 2022年大厂java高频面试题附带答案解析

    本篇分享的面试题内容主要包括 Java SpringMVC Spring Spring Boot Spring Cloud MyBatis ZooKeeper Dubbo Elasticsearch Redis MySQL RabbitMQ
  • 和枚举类相关的Map类——EnumMap

    1 EnumMap类的简介 EnumMap是一个与枚举类一起使用的Map实现 EnumMap中所有key都必须是单个枚举类的枚举值 创建EnumMap时必须显式或隐式指定它对应的枚举类 EnumMap在内部以数组形式保存 所以这种实现形式非
  • EFFECTIVE C++ (万字详解)(一)

    前言 effective C 是一本经典之作 其翻译较为贴合原著 但读起来未免有些僵硬而让人摸不着头脑 所以 我会以更为贴近中国人的理解 对此书进行一些阐释 条款01 把 C 看成一个语言联邦 C 由几个重要的次语言构成 C语言 区块 语句
  • js获取指定日期所在月份的第一天和最后一天,并遍历

    1 获取月份的第一天和最后一天 获取指定日期所在月份的第一天和最后一天 function getfirstDateAndlastDate dateStr let date new Date dateStr let year date get
  • npm-cli----Cannot find module 'D:\node\nodejs\node_module\bin\npm-cli.js'

    我输入 npm init 报这个错 输入 npm v 想查看npm的版本也是这个错 自己试着全局安装npm cli 还是这个错 反正只要和npm有关的命令通通是这个错 之后就开始我的百度之旅 发现根本就没一个帖子有用 该错还是错 我来说下我
  • 配置虚拟机桥接网络的步骤

    一 先打开虚拟机 然后点击左上角的编辑选项 然后点击虚拟网络编辑器 二 设置成桥接模式 并选择自动模式 然后点击确定 三 然后点击虚拟机内右上角的三个方块的图标 如图所示 四 点击有线连接下的齿轮图标 五 需要手动配置IPv4和IPv6网络
  • 二极管的工作原理,什么是二极管?

    二极管是一种电子器件 具有两不对称电导的电极 故名 二极 只允许电流由单一方向流过 所以最常应用其整流功能 二极管的工作原理 什么是二极管 二极管具有阳极和阴极两个端子 电流只能往单一方向流动 也就是说 电流可以从阳极流向阴极 而不能从阴极
  • 使用php语言开Excel的导入功能

    使用 PHP 语言开发 Excel 导入功能 你需要使用 PHPExcel 库 首先 你需要在你的 PHP 项目中安装 PHPExcel 库 你可以使用 Composer 来安装 如下所示 composer require phpoffic
  • C语言航空订票系统课程设计

    目录 1 设计目的 2总体设计和功能 3 菜单设计 4 各功能代码详解 闲话少扯 4 1 C语言文件的操作 4 2 读取航班信息 C语言知识回顾 4 3 打印航班信息 5 根据要求查找航班 航班号 起点站 终点站 6 订票功能 链表操作 前
  • STM32 HAL库:FreeRTOS系统 (带推荐使用除了Systick以外的时钟源问题及解决)

    1 简介 FreeRTOS是一个实时操作系统内核 作为一个轻量级的操作系统 功能包括 任务管理 时间管理 信号量 消息队列 内存管理 记录功能 软件定时器 协程等 可基本满足较小系统的需要 任务调度机制 优先级高的任务一旦就绪就能剥夺优先级
  • 在Android中使用Qt作为共享系统库

    Using Qt as shared system libraries in Android 在Android中使用Qt作为共享系统库 October 21 2022 by Tinja Paavosepp Comments 2022年10月
  • 如何在本地部署运行ChatGLM-6B

    在本篇技术博客中 将展示如何在本地获取运行代码和模型 并配置环境以及 Web GUI 最后通过 Gradio 的网页版 Demo 进行聊天 官方介绍 ChatGLM 6B 是一个开源的 支持中英双语的对话语言模型 基于 General La
  • selenium(练习)提取dou yu网站上的数据

    运行代码时 它会打开斗鱼网站并逐个打印每个房间的相关信息 打印出每个房间的标题 类型 所有者 观看人数和封面图片 import time from selenium import webdriver class Douyu object d