当前位置: 首页 > news >正文

爬虫学习4:爬取王者荣耀技能信息

爬虫:爬取王者荣耀技能信息(代码和代码流程)

  • 代码

  • # 王者荣耀英雄信息获取
    import time
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    if __name__ == '__main__':fp = open("./honorKing.txt", "w", encoding='utf8')# 1、urlurl = "https://pvp.qq.com/web201605/herolist.shtml"#页面url# 2、发送请求driver = webdriver.Edge()#采用edge浏览器driver.get(url)#获取urltime.sleep(3)#防止被检测到爬虫爬取# 3、获取想要的信息# 获取页面信息# driver.page_source# 4、数据解析li_list = driver.find_elements(By.XPATH, "//ul[@class='herolist clearfix']/li")#获取所有的lihero_url_list = []#存储所有的跳转url数据for li in li_list:hero_url = li.find_element(By.XPATH, "a").get_attribute("href")#跳转的urlhero_url_list.append(hero_url)# 句柄的问题  先把所有第一个页面的东西存起来for url in hero_url_list:time.sleep(3)#防止被检测到爬虫爬取driver.get(url)hero_name = driver.find_element(By.XPATH, "//h2[@class='cover-name']").textdiv_list = driver.find_elements(By.XPATH, "//div[@class='skill-show']/div")# 拿到所有的技能信息fp.write(hero_name + "\n")#写入角色名称for div in div_list:js = f'document.getElementsByClassName("show-list")[{div_list.index(div)}].style.display="block"'#解除技能信息被锁driver.execute_script(js)skill_name = div.find_element(By.XPATH, "p[1]/b").textskill_desc = div.find_element(By.XPATH, "p[2]").textfp.write(skill_name + "---->" + skill_desc + "\n")print(skill_name, skill_desc)# 只爬两个看看样例# if hero_url_list.index(url) == 1:#     breakdriver.close()
    
  • 代码流程:

    • 获取页面的url

在这里插入图片描述

  • 跳转到下一界面的url

在这里插入图片描述

  • 找到希望得到的数据的位置

在这里插入图片描述

  • 采用:f’document.getElementsByClassName(“show-list”)[{被锁位置}].style.display=“block”',将不能同时出现的数据同时出现

在这里插入图片描述
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(二)——带着问题的学习;一刷感受;环境搭建
  • 前端切片下载
  • react开发-配置开发时候@指向SRC目录
  • 微服务概念篇-服务提供者/服务消费者
  • 案例研究|柯尼卡美能达软件开发(大连)有限公司基于DataEase构筑内部数据可视化体系
  • react中配置路径别名@
  • 使用docker部署后端项目后,拿不到linux中的文件
  • 【python】Numpy中的ValueError: setting an array element with a sequence报错分析及解决方案
  • 逻辑漏洞面试问题
  • C语言之2048小游戏理解分析
  • 最优化原理(笔记)
  • MINE:Mutual Information Neural Estimation
  • 【学习笔记】无人机系统(UAS)的连接、识别和跟踪(七)-广播远程识别码(Broadcast Remote ID)
  • Nova Admin - 简洁干净、免费开源的后台管理系统,基于Vue3 / Vite5 / Typescript / Naive UI 等前端开发技术栈
  • Express 框架基本用法以及相关知识点
  • 收藏网友的 源程序下载网
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • Apache的80端口被占用以及访问时报错403
  • HTTP那些事
  • IDEA 插件开发入门教程
  • Median of Two Sorted Arrays
  • nodejs调试方法
  • Python 反序列化安全问题(二)
  • React Native移动开发实战-3-实现页面间的数据传递
  • Sublime Text 2/3 绑定Eclipse快捷键
  • vagrant 添加本地 box 安装 laravel homestead
  • Vue2.0 实现互斥
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 创建一种深思熟虑的文化
  • 回流、重绘及其优化
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 算法系列——算法入门之递归分而治之思想的实现
  • 一文看透浏览器架构
  • 译有关态射的一切
  • ​渐进式Web应用PWA的未来
  • ‌移动管家手机智能控制汽车系统
  • # 数仓建模:如何构建主题宽表模型?
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (5)STL算法之复制
  • (C++20) consteval立即函数
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (南京观海微电子)——示波器使用介绍
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (五)IO流之ByteArrayInput/OutputStream
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET Micro Framework初体验(二)
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • [@Controller]4 详解@ModelAttribute
  • [C++]C++类基本语法
  • [Erlang 0129] Erlang 杂记 VI 2014年10月28日