亦余心之所善兮,虽九死其犹未悔 2023-04-22 18:32 采纳率: 100%
浏览 78
已结题

用python的selenium调用浏览器的油猴里安装的脚本

希望有朋友能指点一下怎么用python调用油猴里我下载到的一个脚本,
我就希望能简单直接点,不要在外面添上class和def这些太杂的。crx文件也有了,chrome和edge都行,最好就是不要太多行就能解决的那种,我主要是不知道要怎么调用,路径要怎么设置,引用应该怎么引用一直没找到我想要的

找了一天没找到,只能来csdn找专人帮忙了

  • 写回答

2条回答 默认 最新

  • Zyb0627 2023-04-22 18:42
    关注

    引用chatGPT作答,要使用 Python 和 Selenium 调用浏览器中安装的油猴脚本,可以通过以下步骤:

    1.下载对应浏览器的驱动程序(例如 Chrome 或 Edge),确保它与浏览器版本兼容并将其添加到系统 PATH 中。

    2.在 Python 中使用 selenium 库创建一个 WebDriver 实例,以便与浏览器进行交互。 例如,对于 Chrome 浏览器,可以使用以下代码:

    from selenium import webdriver
    
    # 创建 Chrome 浏览器的 WebDriver 实例
    driver = webdriver.Chrome()
    

    3.将 WebDriver 实例导航到包含油猴脚本的网页。 例如,如果脚本位于 http://example.com/myscript.js%EF%BC%8C%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E4%BB%A5%E4%B8%8B%E4%BB%A3%E7%A0%81%EF%BC%9A

    # 将浏览器导航到脚本所在的网页
    driver.get("http://example.com/")
    

    4.使用 execute_script() 方法在浏览器上下文中运行 JavaScript 代码,从而启用油猴脚本。例如,以下代码将在当前页面上启用名为“myscript”的油猴脚本:

    # 启用油猴脚本
    driver.execute_script("""
       var script = document.createElement('script');
       script.type = 'text/javascript';
       script.src = 'chrome-extension://<油猴插件ID>/<脚本文件名>.user.js';
       document.head.appendChild(script);
    """)
    

    注意,<油猴插件ID> 是指油猴插件在浏览器中的唯一标识符,可以在浏览器的扩展程序页面中找到。<脚本文件名> 是指您要启用的油猴脚本的文件名。

    5.运行您的自动化测试或爬虫代码,与浏览器进行交互并使用您的油猴脚本进行测试或数据抓取。

    完整的 Python 代码示例如下所示:

    from selenium import webdriver
    
    # 创建 Chrome 浏览器的 WebDriver 实例
    driver = webdriver.Chrome()
    
    # 将浏览器导航到脚本所在的网页
    driver.get("http://example.com/")
    
    # 启用油猴脚本
    driver.execute_script("""
       var script = document.createElement('script');
       script.type = 'text/javascript';
       script.src = 'chrome-extension://<油猴插件ID>/<脚本文件名>.user.js';
       document.head.appendChild(script);
    """)
    
    # 在浏览器中进行其他操作,与您的油猴脚本进行交互,例如点击按钮或填写表单等等
    
    # 关闭浏览器
    driver.quit()
    

    注意,您需要将 <油猴插件ID> 和 <脚本文件名> 替换为您自己的实际油猴脚本的相关信息。此外,如果您使用的是 Edge 浏览器,需要将上面代码中的 webdriver.Chrome() 替换为 webdriver.Edge()。同样地,如果您使用的是 Firefox 浏览器,需要将其替换为 webdriver.Firefox()。

    另外,如果您的油猴脚本文件是 .user.js 格式的,那么您还需要在浏览器中手动安装该脚本。具体方法是,将 .user.js 文件拖到浏览器的扩展程序页面,然后按照提示安装即可。如果您的油猴脚本是 .js 格式的,那么可以在油猴插件中直接导入该脚本文件。

    关于路径的设置,如果您将油猴脚本文件下载到本地,那么可以使用绝对路径或相对路径指向该文件。例如,如果您将脚本文件放在与 Python 脚本相同的目录中,可以使用相对路径指向该文件,如下所示:

    # 启用油猴脚本
    driver.execute_script("""
       var script = document.createElement('script');
       script.type = 'text/javascript';
       script.src = 'file://./myscript.user.js';
       document.head.appendChild(script);
    """)
    

    在这个例子中,file://./myscript.user.js 指的是当前工作目录下的 myscript.user.js 文件。如果您将脚本文件放在其他目录中,可以使用绝对路径指向该文件,如下所示:

    # 启用油猴脚本
    driver.execute_script("""
       var script = document.createElement('script');
       script.type = 'text/javascript';
       script.src = 'file:///C:/Users/username/Desktop/myscript.user.js';
       document.head.appendChild(script);
    """)
    

    在这个例子中,file:///C:/Users/username/Desktop/myscript.user.js 指的是 Windows 系统上 C:\Users\username\Desktop 目录中的 myscript.user.js 文件。请注意,在 Windows 系统中,文件路径中的反斜杠需要用双反斜杠或正斜杠代替。

    总之,使用 Python 和 Selenium 调用油猴脚本需要以下步骤:创建 WebDriver 实例、导航到包含脚本的网页、启用油猴脚本、与浏览器进行交互。您需要根据自己的实际情况进行相应的调整和修改,以便实现您的测试或数据抓取任务。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月30日
  • 已采纳回答 4月22日
  • 创建了问题 4月22日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来