你好,我在这里和谷歌上做了很多搜索,但还没有找到解决这个问题的方法。
我在本地计算机(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
对于在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