Python环境下配置EdgeDriver驱动方法详解

版权申诉
0 下载量 10 浏览量 更新于2024-10-31 收藏 5.98MB ZIP 举报
资源摘要信息: "edgedriver_win64_python_edgedriver_" 在探讨这一资源时,我们首先要了解几个关键概念。"edgedriver_win64_python_edgedriver_"这一资源名称暗示了它与Microsoft Edge浏览器的Web驱动程序有关,而这个驱动程序是专门为Windows 64位操作系统上的Python环境设计的。为了深入理解,我们可以拆分成以下几个知识点: 1. **Microsoft Edge 浏览器**: Microsoft Edge是微软公司开发的一款网络浏览器。它在2015年取代了旧版的Internet Explorer,并且基于Chromium项目重新构建,支持现代Web技术。 2. **Web驱动程序 (WebDriver)**: WebDriver是一种允许开发者编写代码以控制Web浏览器的自动化测试工具。它广泛用于持续集成/持续部署(CI/CD)流程中,用于自动化Web应用测试。在Python这样的编程环境中,WebDriver可以与Selenium等自动化测试库一起使用,以模拟用户在网页上的操作。 3. **edgedriver_win64**: 此处的"win64"指示该WebDriver是为64位Windows操作系统设计的。安装和运行WebDriver时,需要确保系统架构与WebDriver的版本相匹配。 4. **Python**: Python是一种高级编程语言,以其可读性和简洁的语法而闻名。Python广泛应用于数据科学、机器学习、网络开发、自动化脚本和其他许多领域。 5. **系统环境变量PATH**: 在操作系统中,PATH是一个环境变量,它告诉系统在何处查找可执行文件。当我们执行一个命令时,系统会在PATH变量指定的目录中搜索与该命令相关的程序或脚本。在本例中,如果edgedriver没有放置在Python.exe的同一目录下,我们需要将其路径添加到系统环境变量PATH中,这样当我们使用命令行或在脚本中调用edgedriver时,系统能够识别并正确找到它。 6. **在Python脚本中定义路径**: Python代码允许开发者在脚本内硬编码路径,用于指定文件的位置。这种做法不需要改动系统环境变量,但仅适用于执行该脚本的特定环境。硬编码路径可能会导致代码的移植性降低,并且使得脚本更难以维护。 7. **压缩包子文件 (Zip Archives)**: 在提供的文件名称列表中,“msedgedriver.exe”是实际的Edge WebDriver可执行文件,而“Driver_Notes”可能是包含有关该驱动程序安装、使用和配置说明的文档。将这些文件打包成zip格式是为了便于传输和存储。 8. **下载驱动后存放位置**: 当下载Edge WebDriver后,推荐的做法是将其存放到Python的安装目录下,因为这样可以简化环境变量配置的步骤。如果选择存放在其他目录,就需要手动更新PATH环境变量,或者在Python脚本中指定驱动程序的确切位置。 总结以上知识点,我们可以发现,“edgedriver_win64_python_edgedriver_”是一个为Python环境中的Microsoft Edge浏览器提供的WebDriver资源,它需要被正确安装和配置才能用于自动化Web测试。开发者可以根据自身的需求和环境选择合适的存放和配置方式。理解这些知识点对于有效使用WebDriver和Python进行Web自动化测试是非常有帮助的。

import re import json import time import requests import datetime import pymysql import selenium from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from sqlalchemy import create_engine, Column, Integer, String, Text, DateTime from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base from selenium.webdriver import Edge, EdgeOptions # 创建浏览器对象 options = EdgeOptions() options.use_chromium = True options.binary_location = r'C:\Users\邓枫林\PycharmProjects\pythonProject\edgedriver_win64\msedgedriver.exe' browser = Edge(options=options) wait = WebDriverWait(browser, 10) # 打开微博话题页面 url = 'https://weibo.com/n/%E4%B8%AD%E5%9B%BD%E9%A3%9F%E5%93%81%E5%8D%AB%E7%94%9F?from=feed&loc=at&nick=%E4%B8%AD%E5%9B%BD%E9%A3%9F%E5%93%81%E5%8D%AB%E7%94%9F&order=hot' browser.get(url) # 等待页面加载完成 wait.until(lambda driver: driver.execute_script("return document.readyState") == "complete") browser = selenium.webdriver.Edge(executable_path='C:/Users/邓枫林/PycharmProjects/pythonProject/edgedriver_win64/msedgedriver.exe') wait = selenium.webdriver.support.ui.WebDriverWait(browser, 10) # 监测页面是否包含“高校类”敏感词汇 if '高校类' in browser.page_source: # 获取原始微博 weibo = browser.find_element_by_css_selector('.WB_feed_detail .WB_text.W_f14').text # 获取转发该微博的用户昵称和转发内容 reposts = [] repost_items = browser.find_elements_by_css_selector('.list_ul .list_li') for item in repost_items: nickname = item.find_element_by_css_selector('.WB_text.W_f14').text content = item.find_element_by_css_selector('.WB_text.W_f14 + .comment_txt').text reposts.append({'nickname': nickname, 'content': content}) # 关闭浏览器 browser.quit() # 将微博和转发内容存入MySQL数据库中 Base = declarative_base() class Weibo(Base): __tablename__ = 'weibo_user' id = Column(Integer, primary_key=True) content = Column(Text) create_time = Column(DateTime) class Repost(Base): __tablename__ = 'weibo_repost' id = Column(Integer, primary_key=True) weibo_id = Column(Integer) nickname = Column(String(50)) content = Column(Text) engine = create_engine('mysql+pymysql://root:root@hostname:port/weibo?charset=utf8mb4') Session = sessionmaker(bind=engine) session = Session() now = datetime.datetime.now() weibo_obj = Weibo(content=weibo, create_time=now) session.add(weibo_obj) session.commit() for repost in reposts: repost_obj = Repost(weibo_id=weibo_obj.id, nickname=repost['nickname'], content=repost['content']) session.add(repost_obj) session.commit() session.close() else: # 关闭浏览器 browser.quit()

2023-06-12 上传