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

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

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

引用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 实例、导航到包含脚本的网页、启用油猴脚本、与浏览器进行交互。您需要根据自己的实际情况进行相应的调整和修改,以便实现您的测试或数据抓取任务。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7406026
  • 你也可以参考下这篇文章:第14.15节 爬虫实战1:使用Python和selenium实现csdn博文点赞
  • 除此之外, 这篇博客: Selenium-python完成csdn博客文章自动导入指定社区中的 学习产出: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    可以解放双手完成一些自动化测试,通过今天的学习,对元素的定位以及循环分析做一个记录,总结一下,上文只是说明了如何循环获取文章名称,对其他的操作,例如点击等一些事件是相同的,文章名称仅时介绍使用方便叙述,文中说到了复制xpath、css等路径的方法,介绍了我的个人定位方法,文字叙述就是:找到需要循环的数据,通过个人的需求确定使用find_element_by_xpath、find_element_by_css_selector或者其他函数,对复制到的单个数据路径,进行修改,修改到可以使用搜索手动遍历一遍,可以使用就可以作为循环结构!循环体内的事件也是如此,如果与父级不是同一层那就,用完整路径访问即可,只是需要改一下是循环触发还是本身驱动器触发,更多的说明 看代码吧!'

  • 以下回答来自chatgpt:

    对于调用浏览器中安装的油猴脚本,可以通过以下步骤进行设置和引用:

    1. 在Python中使用Selenium库启动对应浏览器的driver,例如Chrome浏览器:
    from selenium import webdriver
    driver = webdriver.Chrome(executable_path='chromedriver路径')
    
    1. 在启动driver前,需要将安装好的油猴脚本文件(xxx.user.js)加入浏览器的扩展程序:

    2. 对于Chrome浏览器,可以使用add_extension()方法加载crx格式的拓展,例如:

    options = webdriver.ChromeOptions() options.add_extension('油猴脚本路径.crx') driver = webdriver.Chrome(executable_path='chromedriver路径', options=options)

    或者直接将安装好的油猴脚本crx文件移到浏览器扩展程序文件夹中,然后在启动driver时加入“--load-extension=油猴脚本路径”参数,例如:

    options = webdriver.ChromeOptions() options.add_argument('--load-extension=油猴脚本路径') driver = webdriver.Chrome(executable_path='chromedriver路径', options=options)

    • 对于Edge浏览器,可以使用add_extension()方法加载crx格式的拓展,例如:

    options = webdriver.EdgeOptions() options.add_extension('油猴脚本路径.crx') driver = webdriver.Edge(executable_path='msedgedriver路径', options=options)

    或者直接将安装好的油猴脚本crx文件移到浏览器扩展程序文件夹中,然后在启动driver时加入“--load-extension=油猴脚本路径”参数,例如:

    options = webdriver.EdgeOptions() options.add_argument('--load-extension=油猴脚本路径') driver = webdriver.Edge(executable_path='msedgedriver路径', options=options)

    1. 在driver中打开对应的网页,等待网页加载完成,然后油猴脚本会自动执行:
    driver.get('网页URL')
    

    完成以上三个步骤后,就可以成功调用浏览器中安装的油猴脚本了。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^