一、前置准备:安装必要库
# 安装 Selenium(浏览器自动化工具) pip install selenium # 安装 openpyxl(操作 Excel xlsx 格式文件的库,支持读写) pip install openpyxl
二、完整实现代码
python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException, WebDriverException
from openpyxl import Workbook
import time
def get_website_info(target_urls, excel_save_path="website_info.xlsx"):
# 1. 初始化 Excel 工作簿和工作表
wb = Workbook()
ws = wb.active
ws.title = "网站信息汇总"
# 设置 Excel 表头
headers = ["网站网址", "网站名称(title)", "网站描述(description)", "网站关键词(keywords)"]
ws.append(headers)
# 2. 初始化 Selenium 浏览器(Chrome)
# 可选配置:无头模式(不弹出浏览器窗口)
chrome_options = webdriver.ChromeOptions()
# 注释下面这行可以显示浏览器窗口,方便调试
chrome_options.add_argument("--headless=new")
driver = webdriver.Chrome(options=chrome_options)
try:
# 3. 遍历目标网址,逐个提取信息
for url in target_urls:
website_info = []
try:
# 访问目标网站
driver.get(url)
# 等待页面加载(可选,根据网站情况调整时间)
time.sleep(2)
# 提取 1:网站网址(当前页面的 URL)
current_url = driver.current_url
website_info.append(current_url)
print(f"正在处理网址:{current_url}")
# 提取 2:网站名称(title 标签内容)
try:
title = driver.title
website_info.append(title)
except Exception:
website_info.append("未获取到网站名称")
# 提取 3:网站 description(meta 标签 name="description" 的 content 属性)
try:
description_meta = driver.find_element(
By.XPATH, '//meta[@name="description"]'
)
description = description_meta.get_attribute("content")
website_info.append(description.strip() if description else "无描述")
except NoSuchElementException:
website_info.append("未找到 description 标签")
except Exception:
website_info.append("获取 description 失败")
# 提取 4:网站 keywords(meta 标签 name="keywords" 的 content 属性)
try:
keywords_meta = driver.find_element(
By.XPATH, '//meta[@name="keywords"]'
)
keywords = keywords_meta.get_attribute("content")
website_info.append(keywords.strip() if keywords else "无关键词")
except NoSuchElementException:
website_info.append("未找到 keywords 标签")
except Exception:
website_info.append("获取 keywords 失败")
# 将当前网站信息写入 Excel 工作表
ws.append(website_info)
except WebDriverException as e:
print(f"访问网址 {url} 失败:{str(e)}")
# 访问失败时,填充异常信息
error_info = [url, "访问失败", "访问失败", "访问失败"]
ws.append(error_info)
except Exception as e:
print(f"处理网址 {url} 出现未知错误:{str(e)}")
error_info = [url, "未知错误", "未知错误", "未知错误"]
ws.append(error_info)
# 4. 保存 Excel 文件
wb.save(excel_save_path)
print(f"\n所有网站信息已保存到:{excel_save_path}")
finally:
# 5. 关闭浏览器,释放资源
driver.quit()
wb.close()
if __name__ == "__main__":
# 自定义目标网站列表(可修改为你需要的网址)
target_website_list = [
"https://www.baidu.com",
"https://www.zhihu.com",
"https://www.csdn.net"
]
# 调用函数,指定 Excel 保存路径(默认当前目录)
get_website_info(
target_urls=target_website_list,
excel_save_path="我的网站信息汇总.xlsx"
)


