最近这两天在写爬虫,感觉终极的解决方案还是用Selenium 模拟浏览器访问,这样省了很多麻烦。
我开始用的是chrome,但发现真的不如firefox。我写了一个代理池,但问题来了,chrome调用代理总出问题,一气之下换成firefox。
Selenium 原生支持firefox,所以只需要装一个firefox就能用了。
from selenium.webdriver.common.proxy import *
ip=rdl(zd.keys())
myProxy = ip
proxy = Proxy({
'proxyType': ProxyType.MANUAL,
'httpProxy': myProxy,
'ftpProxy': myProxy,
'sslProxy': myProxy,
'noProxy': ''
})
driver=webdriver.Firefox(proxy=proxy)
但是天下哪有这样的好事!
出现了错误: Message: 'geckodriver' executable needs to be in PATH.
我在国内网站上找了半天并没解决,用一个外国人的方法完美解决了。
下载最新的geckodriver:https://github.com/mozilla/geckodriver/releases
linux添加环境变量:
export PATH
=
$PATH
:/
path
/
to
/
directory
/
of
/
executable
/
downloaded
/
in
/
previous
/
step
windows下将geckodriver.exe所在的目录加到PATH中,或者像我一样,拷到C:\Python27目录下。(我的C:\Python27在PATH中)
外国人原文地址:
http://stackoverflow.com/questions/40208051/selenium-using-python-geckodriver-executable-needs-to-be-in-path/40208762