selenium + phantomjs常见错误:QXcbConnection、Unable to load Atom 'find_element'、Bad file descriptor

使用python做爬虫的时候,难免会碰到一些必须使用浏览器进行模拟的情况,这里总结一下在python下使用selenium调用phantomjs时,一些常见的坑。以下的一切建立在类ubuntu系统上,其他系统上不清楚,仅供参考。

QXcbConnection

安装好Phantomjs后,在命令行里运行一下,发现报错了,阅读报错信息大概是环境出了问题,可以通过如下方法解决。

使用vim或者gedit,在/usr/bin/phantomjs中引入相关的环境变量:

export QT_QPA_PLATFORM=offscreen
export QT_QPA_FONTDIR=/usr/share/fonts

Unable to load Atom ‘find_element’

出现这个问题,一般是phantomjs安装不完整导致的。比如使用apt-get 安装的phantomjs一般都不完整= =

可以使用如下方法解决:

sudo apt-get install nodejs  
sudo apt-get install nodejs-legacy  
sudo apt-get install npm  
sudo npm -g install phantomjs-prebuilt  

Bad file descriptor

有时候,在python代码中,使用driver.quit()方法关闭浏览器时,可能会报Bad file descriptor错误,导致退出失败,以致于一段时间后,后台多了很多丢失了句柄的phantomjs进程。

可以这样修改代码来解决问题:

import signal

# 先杀死对应的子进程
driver.service.process.send_signal(signal.SIGTERM)
# 再退出
driver.quit()  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值