Python爬虫实战(基础篇)—20—爬取王者荣耀英雄信息+头像+写入Excel—附完整版代码

专栏导读

在这里插入图片描述

  • 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注

  • 👍 该系列文章专栏:请点击——>Python办公自动化专栏求订阅

  • 🕷 此外还有爬虫专栏:请点击——>Python爬虫基础专栏求订阅

  • 📕 此外还有python基础专栏:请点击——>Python基础学习专栏求订阅

  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏

  • ❤️ 欢迎各位佬关注! ❤️

库的介绍

  • Selenium 是一个用于自动化 web 浏览器操作的工具,它支持多种浏览器(如 Chrome、Firefox、Safari 等),并允许你编写脚本来模拟用户在浏览器中的行为。Python 中的 Selenium 绑定提供了 Python 程序员使用 Selenium 库的能力。

库的安装

pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/

在这里插入图片描述

1、分析页面

网址点我进入

我们可以看到所有的英雄名字以及头像都存在这个【ul】标签下的【li】标签下

在这里插入图片描述

我发现剧集信息在静态页面中,可以使用re正则、BS、xpath获取信息

但是今天我想换一个方法!!,我想用 selenium获取

理由:

①我发现所有的英雄信息都在 【ul】标签下的【li】标签下

②直接利用selenium+xpath更方便

2、配置本地绑定端口

2-1、配置本地绑定端口

下面这行代码 复制粘贴进入 CMD,打开绑定端口号 的浏览器

cd C:\Program Files\Google\Chrome\Application & chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\selenum\AutomationProfile"

这是个人习惯,您也可以跳过此步骤

此步骤具体方法在这一篇:Python—selenium控制本地浏览器并获取网页数据

在这里插入图片描述

3、获取所有的tbody中tr+完整代码

# -*- coding: UTF-8 -*-
'''
# -*- coding: UTF-8 -*-
'''
@Project :测试 
@File    :main-1.py
@IDE     :PyCharm 
@Author  :一晌小贪欢(278865463@qq.com)
@Date2024/7/30 22:48 
'''
import openpyxl
import requests
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options

# cd C:\Program Files\Google\Chrome\Application & chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\selenum\AutomationProfile"
# url = 'https://pvp.qq.com/web201605/herolist.shtml'

chrome_options = Options()
chrome_options.add_experimental_option('debuggerAddress', '127.0.0.1:9222')
driver = webdriver.Chrome(options=chrome_options)

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
}

wb = openpyxl.Workbook()
ws = wb.active
ws.append(['英雄名称', '英雄头像链接'])

heros = driver.find_elements(By.XPATH, '//ul[@class="herolist clearfix"]/li')
for hero in heros:
    name = hero.find_element(By.XPATH, './a/img').get_attribute('alt')
    picture = hero.find_element(By.XPATH, './a/img').get_attribute('src')
    # 下载头像
    pic_data = requests.get(picture,headers=headers)
    with open(f'pics/{name}.jpg', 'wb') as f:
        f.write(pic_data.content)

    print('下载成功',name,picture)
    ws.append([name, picture])

wb.save('heros.xlsx')

在这里插入图片描述

在这里插入图片描述

总结

  • 希望对初学者有帮助

  • 致力于办公自动化的小小程序员一枚

  • 希望能得到大家的【一个免费关注】!感谢

  • 求个 🤞 关注 🤞

  • 此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏

  • 求个 ❤️ 喜欢 ❤️

  • 此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏

  • 求个 👍 收藏 👍

  • 此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一晌小贪欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值