gpt4 book ai didi

python - 使用 Adblock Plus 扩展打开 Firefox Webdriver (Python)

转载 作者:太空宇宙 更新时间:2023-11-03 15:08:26 31 4
gpt4 key购买 nike

我想用 Python Webdriver 和 Adblock Plus Extension 打开 Firefox。

这是我的代码:

from selenium import webdriver

ffprofile = webdriver.FirefoxProfile()
ffprofile.add_extension(extension='adblock.xpi')
driver = webdriver.Firefox(firefox_profile=ffprofile)

我收到以下错误:

Traceback (most recent call last): File "adblock_test.py", line 6, in ffprofile.add_extension(extension='adblock.xpi') File "C:\Python34\lib\site-packages\selenium\webdriver\firefox\firefox_profile .py", line 92, in add_extension self._install_extension(extension) File "C:\Python34\lib\site-packages\selenium\webdriver\firefox\firefox_profile .py", line 269, in _install_extension addon_details = self._addon_details(addon) File "C:\Python34\lib\site-packages\selenium\webdriver\firefox\firefox_profile .py", line 341, in _addon_details manifest = f.read() File "C:\Python34\lib\encodings\cp1252.py", line 23, in decode return codecs.charmap_decode(input,self.errors,decoding_table)[0] UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 964: char acter maps to undefined

其他扩展可以毫无问题地使用此代码。只有 Adblock Plus 扩展程序 ( https://addons.mozilla.org/de/firefox/addon/adblock-plus/ ) 不起作用。有人知道这个问题的解决方案吗?

最佳答案

这是因为 adblock plus list 文件包含一些 unicode 字符。

有两种可能的解决方案:

  1. 更改 selenium/webdriver/firefox/firefox_profile.py 中的代码

    with open(os.path.join(addon_path, 'install.rdf'), 'r') as f:

open(os.path.join(addon_path, 'install.rdf'), 'r', encoding='utf8') as f:

  1. 下载 adblock_plus.xpi 并从 list 中删除本地化字符串(您可以使用任何存档管理器打开 .xpi)

这也是一个问题,您可以向 selenium bug tracker 提交票证,以便它在 selenium 本身中得到解决。

关于python - 使用 Adblock Plus 扩展打开 Firefox Webdriver (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30071156/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com