本文以Edge浏览器为例
一、Edge浏览器版本与对应驱动器
1.1查看自己Edge浏览器版本
1.2到官网下载对应版本的Edge驱动(Microsoft Edge WebDriver |Microsoft Edge 开发人员)
https://developer.microsoft.com/zh-cn/microsoft-edge/tools/webdriver/?form=MA13LH
二、将下载好的Edge驱动器(msedgedriver.exe)放在python目录下面(默认目录)
三、上手代码(以3733手游为例,爬取部分页面数据)---仅供个人学习使用,造成后果自行承担
from selenium import webdriver
from selenium.webdriver.common.by import By
# 指定Edge驱动程序的路径
edge_driver_path = 'D:\\Python\\msedgedriver.exe'
# 初始化Edge浏览器驱动
driver = webdriver.Edge(executable_path=edge_driver_path)
# 设定页数
num_pages = 1
# 行计数器
row_count = 2
for page in range(1, num_pages + 1):
# 打开目标网页
url = f'https://www.3733.com/zt?page={page}'
driver.get(url)
# 等待页面加载完成
driver.implicitly_wait(10)
# 获取所有li元素的总数
li_count = len(driver.find_elements(By.CLASS_NAME, 'special-content-list'))
# 遍历所有li元素并依次点击
for i in range(li_count):
# 重新获取li元素列表,因为返回上一页后,之前的元素引用会失效
li_elements = driver.find_elements(By.CLASS_NAME, 'special-content-list')
# 获取当前li元素中的a标签
a_tag = li_elements[i].find_element(By.TAG_NAME, 'a')
# 点击a标签
a_tag.click()
# 等待页面加载完成
driver.implicitly_wait(5)
# 获取页面信息
title = driver.title
keywords = driver.find_element(By.NAME, 'keywords').get_attribute('content')
description = driver.find_element(By.NAME, 'description').get_attribute('content')
# 获取标题
h1_title = driver.find_element(By.TAG_NAME, 'h1').text
# 获取更新时间和游戏款数
date_span = driver.find_element(By.CLASS_NAME, 'date').find_element(By.TAG_NAME, 'span').text
game_count = driver.find_element(By.CLASS_NAME, 'date').find_element(By.TAG_NAME, 'em').text
# 获取游戏详情
game_details = driver.find_element(By.CLASS_NAME, 'desc').find_element(By.TAG_NAME, 'p').text
# 获取相关推荐文字信息
tags = driver.find_element(By.CLASS_NAME, 'tags')
related_links = tags.find_elements(By.TAG_NAME, 'a')
related_texts = [link.text for link in related_links]
related_texts_str = ", ".join(related_texts)
# 打印获取的基础信息
print("\n")
print(f"专题标题: {title}")
print(f"Keyword关键字: {keywords}")
print(f"专题描述: {description}")
print(f"页面详情页专题标题: {h1_title}")
print(f"页面详情页更新时间: {date_span}")
print(f"页面详情页更新游戏款数: {game_count}")
print(f"页面详情页游戏详情: {game_details}")
print(f"页面详情页相关推荐: {related_texts_str}")
# 增加行计数器
row_count += 1
# 返回上一页
driver.back()
# 再次等待页面加载完成
driver.implicitly_wait(5)
# 关闭浏览器
driver.quit()
四、 避免踩雷(必看!!!)
1.selenium库终端直接下载2.53.6版本,有时候最新版有问题
pip install selenium==2.53.6
2.有关于代码中Edge路径的问题
原先第三步中代码是直接自定义驱动器的路径
edge_driver_path = 'D:\\Python\\msedgedriver.exe'
driver = webdriver.Edge(executable_path=edge_driver_path)
有时候如果edge驱动器路径依旧出现问题:
driver = webdriver.Edge()
这里直接可以尝试不填路径,因为我们第二步默认好edge路径在python解析器目录了
五、运行截图(实测有效)