专栏导读
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/847e8709c3ba428aaabf47760c17b8e8.gif)
-
🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手
-
-
-
-
📕 此外还有python基础专栏:请点击——>Python基础学习专栏求订阅
-
文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
-
❤️ 欢迎各位佬关注! ❤️
库的介绍
-
Selenium 是一个用于自动化 web 浏览器操作的工具,它支持多种浏览器(如 Chrome、Firefox、Safari 等),并允许你编写脚本来模拟用户在浏览器中的行为。Python 中的 Selenium 绑定提供了 Python 程序员使用 Selenium 库的能力。
库的安装
pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0b84a21930af4aa5be5e47b3f07464e5.png)
1、分析页面
我们可以看到所有的英雄名字以及头像都存在这个【ul】标签下的【li】标签下
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f8070b2645994690b0f1ae3300e88018.png)
我发现剧集信息在静态页面中,可以使用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"
这是个人习惯,您也可以跳过此步骤
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/630b076535cd45899a718be82ac3cec5.gif)
3、获取所有的tbody中tr+完整代码
'''
# -*- coding: UTF-8 -*-
'''
@Project :测试
@File :main-1.py
@IDE :PyCharm
@Author :一晌小贪欢(278865463@qq.com)
@Date :2024/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
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')
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0587a39c64d74c66b19968192b64ebf8.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7944d374f9d44497a1aedd0283f695b2.png)
总结
-
希望对初学者有帮助
-
致力于办公自动化的小小程序员一枚
-
希望能得到大家的【一个免费关注】!感谢
-
求个 🤞 关注 🤞
-
-
求个 ❤️ 喜欢 ❤️
-
-
求个 👍 收藏 👍
-