首页 > 其他分享 >爬虫:爬取王者荣耀技能信息

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

时间:2024-07-22 21:01:22浏览次数:12  
标签:hero 王者 url driver list 爬虫 爬取 div skill

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

  • 代码

  • # 王者荣耀英雄信息获取
    import time
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    if __name__ == '__main__':
        fp = open("./honorKing.txt", "w", encoding='utf8')
        # 1、url
        url = "https://pvp.qq.com/web201605/herolist.shtml"#页面url
        # 2、发送请求
        driver = webdriver.Edge()#采用edge浏览器
        driver.get(url)#获取url
        time.sleep(3)#防止被检测到爬虫爬取
        # 3、获取想要的信息
        # 获取页面信息
        # driver.page_source
        # 4、数据解析
        li_list = driver.find_elements(By.XPATH, "//ul[@class='herolist clearfix']/li")#获取所有的li
        hero_url_list = []#存储所有的跳转url数据
        for li in li_list:
            hero_url = li.find_element(By.XPATH, "a").get_attribute("href")#跳转的url
            hero_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']").text
            div_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").text
                skill_desc = div.find_element(By.XPATH, "p[2]").text
                fp.write(skill_name + "---->" + skill_desc + "\n")
                print(skill_name, skill_desc)
            # 只爬两个看看样例
            # if hero_url_list.index(url) == 1:
            #     break
        driver.close()
    
  • 代码流程:

    • 获取页面的url

在这里插入图片描述

  • 跳转到下一界面的url

在这里插入图片描述

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

在这里插入图片描述

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

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

标签:hero,王者,url,driver,list,爬虫,爬取,div,skill
From: https://blog.csdn.net/mohanyelong/article/details/140619567

相关文章

  • 《0基础》学习Python——第二十四讲__爬虫/<7>深度爬取
    一、深度爬取        深度爬取是指在网络爬虫中,获取网页上的所有链接并递归地访问这些链接,以获取更深层次的页面数据。        通常,一个简单的爬虫只会获取到初始页面上的链接,并不会进一步访问这些链接上的其他页面。而深度爬取则会不断地获取链接,并继续访问......
  • 哔哩哔哩_B站_Bilibili视频弹幕爬取与数据分析python
    ​B站弹幕爬取与数据分析一、项目背景在互联网时代,用户生成内容(UGC)成为了研究社交行为和文化趋势的重要数据来源。B站(哔哩哔哩)作为一个主要的弹幕视频分享平台,聚集了大量的用户评论和互动数据。弹幕作为一种实时的用户反馈形式,具有即时性和高互动性的特点,为数据分析提供了丰富......
  • 高级爬虫练习题及答案
    引言在当今的数据驱动世界,爬虫已经成为获取网络数据的重要工具。通过爬虫,我们可以从各种网站中提取信息,进行数据分析,支持决策。然而,爬虫技术不仅仅限于简单的网页抓取,还涉及到处理动态内容、反爬虫机制以及大规模数据提取等复杂问题。本文将介绍几个高级爬虫练习题,并附上详细......
  • 高级网络爬虫教程
    在网络爬虫领域,高级技术可以显著提升爬虫的性能、稳定性和数据处理能力。本教程将介绍一些更高级的爬虫技术,包括分布式爬虫、动态内容抓取、处理JavaScript生成的内容、使用机器学习进行反反爬虫等,并提供相应的实例代码。优点:全面性:文章涵盖了多种高级爬虫技术,包括分布式......
  • 正则表达式在python爬虫中常用的方法举例
    在爬虫中,正则表达式被广泛用于从网页中提取特定信息。以下是一些常用的正则表达式方法举例,以及它们在爬虫中的典型应用场景:1.提取URLimportreurl_pattern=r'https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+'urls=re.findall(url_pattern,html_content)用于从网页中......
  • Python爬虫实战案例(爬取文字)
    爬取豆瓣电影的数据首先打开"豆瓣电影Top250"这个网页:按F12,找到网络;向上拉动,找到名称栏中的第一个,单机打开;可以在标头里看到请求URL和请求方式,复制URL(需要用到);在表头的最下面有"User-Agent",也复制下来(也可以下载pipinstallfake_useragent库,用别人写好的UA)。定位......
  • 初学者简单了解爬虫的基本认识和操作(详细参考图片)
    爬虫定义:爬虫(WebCrawler或Spider)是一种自动访问互联网上网页的程序,其主要目的是索引网页内容,以便搜索引擎能够快速检索到相关信息。以下是爬虫的一些关键特性和功能:自动化访问:爬虫能够自动访问网页,无需人工干预。索引内容:爬虫会提取网页中的文本内容、图片、链接等信......
  • 爬虫爬取网页的信息与图片的方法
    爬虫爬取网页的信息与图片的方法爬取人物信息importrequestshead={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/126.0.0.0Safari/537.36Edg/126.0.0.0"}#这是get请求带参数的模式defget......
  • 爬取前 250 部电影 IDMb 中的数据
    拜托,我需要有人帮助我。我不明白为什么我只爬取25部电影而不是250部电影。我的代码:importpandasaspdimportrequestsfrombs4importBeautifulSoupheaders={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)C......
  • 我心中的王者:Python-第2章 认识变量与基本数学运算
    我心中的王者:Python-第2章认识变量与基本数学运算本章将从基本数学运算开始,一步一步讲解变量的使用与命名,接着介绍Python的算术运算。2-1用Python做计算假设读者到麦当劳打工,一小时可以获得120元时薪,如果想计算一天工作8小时,可以获得多少工资?我们可以用计算器执行“1......