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

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

代码

python 复制代码
# 王者荣耀英雄信息获取
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"',将不能同时出现的数据同时出现


相关推荐
封步宇AIGC18 分钟前
量化交易系统开发-实时行情自动化交易-Okex K线数据
人工智能·python·机器学习·数据挖掘
封步宇AIGC21 分钟前
量化交易系统开发-实时行情自动化交易-Okex交易数据
人工智能·python·机器学习·数据挖掘
小爬虫程序猿23 分钟前
如何利用Python解析API返回的数据结构?
数据结构·数据库·python
波点兔25 分钟前
【部署glm4】属性找不到、参数错误问题解决(思路:修改模型包版本)
人工智能·python·机器学习·本地部署大模型·chatglm4
并不会2 小时前
常见 CSS 选择器用法
前端·css·学习·html·前端开发·css选择器
龙鸣丿2 小时前
Linux基础学习笔记
linux·笔记·学习
一点媛艺3 小时前
Kotlin函数由易到难
开发语言·python·kotlin
魔道不误砍柴功4 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
Nu11PointerException4 小时前
JAVA笔记 | ResponseBodyEmitter等异步流式接口快速学习
笔记·学习
_.Switch5 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops