【问题标题】:Python selenium firefox adblockPython selenium firefox adblock
【发布时间】:2014-12-21 17:16:03
【问题描述】:

我正在尝试使用 adblock 加载一个版本的 firefox,但出现错误。

profile = webdriver.FirefoxProfile()
adblockfile = '\Users\username\Downloads\adblock_plus-2.6.3-fx+an+sm+tb.xpi'
profile.add_extension (adblockfile)
profile.set_preference("extensions.adblockplus.currentVersion", "2.4")
browser = webdriver.Firefox(firefox_profile=profile)

错误读取

the filename, directory name, or volume label syntax is incorrect: ' c:\\users\\username\\appdata\\local\\temp\\tmplt8yt3.download\x07dblock_plus-2.6.3-fx+an+sm+tb.xpi'

不确定发生了什么以及为什么目录混乱。

【问题讨论】:

  • windows,我不太明白你的意思,对不起,我还是新手。

标签: python


【解决方案1】:
adblockfile = '\Users\username\Downloads\adblock_plus-2.6.3-fx+an+sm+tb.xpi'

应该是

adblockfile = r'\Users\username\Downloads\adblock_plus-2.6.3-fx+an+sm+tb.xpi'

否则,一些反斜杠字符(在本例中为 '\a')会被解释为转义序列。

The r prefix before the quotation mark 使字符串成为原始字符串,并告诉 Python 将反斜杠解释为文字反斜杠。


'\a' 是 ASCII 贝尔 (BEL) 字符,而 r'\a' 是文字反斜杠,后跟 a

In [179]: '\adblock'
Out[179]: '\x07dblock'

In [180]: r'\adblock'
Out[180]: '\\adblock'

【讨论】:

    【解决方案2】:

    您在加载 xpi 时会遇到更多问题,因为 adblock 需要获取其订阅列表。请看

    Python Using Adblock with Selenium and Firefox Webdriver

    或者您可以保存已下载订阅列表的配置文件

    【讨论】:

      猜你喜欢
      • 2014-01-16
      • 1970-01-01
      • 2021-06-08
      • 2013-09-14
      • 2016-03-10
      • 1970-01-01
      • 2022-08-14
      • 2013-12-25
      • 2011-09-24
      相关资源
      最近更新 更多