当前位置: 首页 > 知识库问答 >
问题:

Python/Firefox无头刮擦脚本中的“从提线木偶解码响应失败”消息

薛云瀚
2023-03-14

你好,我在这里和谷歌上做了很多搜索,但还没有找到解决这个问题的方法。

我在本地计算机(OSX10.10)上运行这个脚本。火狐是最新的V59。Selenium的版本为3.11.0,使用geckodriver V0.20。

这个脚本在本地没有问题,它可以运行所有的URL,刮页没有问题。

现在,当我把脚本放在我的服务器上时,唯一的区别是它是Ubuntu16.04(32位)。我使用适当的geckodriver(仍然是V0.20),但其他一切都是一样的(Python 2.7,Selenium 3.11)。它似乎会使headless浏览器随机崩溃,然后所有browserobjt.get('url...')都不再工作。

要显示一些代码:

当我创建驱动程序时:

    options = Options()
    options.set_headless(headless=True)

    driver = webdriver.Firefox(
        firefox_options=options,
        executable_path=config.GECKODRIVER
    )

Driver作为参数传递给脚本的函数BrowserObj,然后用于调用特定的页面,然后在加载后将其传递给BeautifulSoup进行解析:

browserObj.get(url)

soup = BeautifulSoup(browserObj.page_source, 'lxml')
Traceback (most recent call last):
  File "main.py", line 164, in <module>
    getLeague
  File "/home/ps/dataparsing/XXX/yyy.py", line 48, in BBB
    soup = BeautifulSoup(browserObj.page_source, 'lxml')
  File "/home/ps/AAA/projenv/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 670, in page_source
    return self.execute(Command.GET_PAGE_SOURCE)['value']
  File "/home/ps/AAA/projenv/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 312, in execute
    self.error_handler.check_response(response)
  File "/home/ps/AAA/projenv/local/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
WebDriverException: Message: Failed to decode response from marionette

共有1个答案

冷吉星
2023-03-14

对于在Docker容器中运行selenium webdriver时遇到此问题的其他人,将容器大小增加到2GB可以解决此问题。

我想如果OP通过将服务器RAM升级到2GB来解决它们的问题,这也会影响物理机器,但这可能是巧合。

 类似资料:
  • 问题内容: 美好的一天,我在这里和Google上进行了许多搜索,但仍未找到解决此问题的解决方案。 该方案是: 我有一个Python脚本(2.7),它可以循环访问多个URL(例如,认为Amazon页面,抓取评论)。每个页面具有相同的HTML布局,只是抓取不同的信息。我将Selenium与无头浏览器一起使用,因为这些页面具有需要执行以获取信息的javascript。 我在本地计算机(OSX 10.10

  • 或者使用TrustallSSLCertifices代替acceptSslCerts,但仍然给我证书错误,问题是什么?

  • 问题内容: 我什至不理解标题中服务之间的基本区别。这些服务仅仅是提供软件来帮助您配置/组织/管理VM,还是为VM运行提供物理基础设施?换句话说,它们只是开发人员与AWS,Rackspace和Azure之间的便捷接口吗? 问题答案: 不完全是。 Chef / Puppet是“相同的”,它们是配置管理。尽管您可以使用它们来管理虚拟机或公共/私有云,但是大多数人并不倾向于那样使用它们。它们是配置管理。它

  • 我有一个处理不同数据的Python代码。例如,它从以下HTML代码中删除: 它工作正常,但现在失败了,出现了以下错误: NoSuchelementException:消息:{“errorMessage”:“找不到链接文本为‘网站’的元素”,“请求”:{“headers”:{“Accept”:“Application/JSON”,“Accept-Encoding”:“Identity”,“Conne

  • 问题内容: 我取这个页面与该请求库中的Node.js,并使用解析身体cheerio。 调用已解析的响应正文,发现该页面的title属性为: …什么时候应该: 我尝试将请求库的选项设置为include ,但这似乎并没有改变任何东西。 如何保留这些字符? 问题答案: 该页面似乎是用iso-8859-1编码的。您需要通过传递并使用诸如node- iconv之 类的东西来告诉您退回未编码的缓冲区。 如果要

  • 问题内容: 最近几天,我一直在将Selenium,Tor和Firefox混为一谈,以完成多项任务。我设法用Python编写了一个简单的脚本,该脚本可通过Selenium控制Firefox,而Firefox则连接到Tor以获得隐私。 现在,我正在寻找一种节省资源的方法,因此我想到了以无头模式运行Firefox,我认为这是一个常见功能,但事实并非如此。我正在寻找一种方法来做到这一点。之所以是Firef