python 爬虫细节

Python selenium设置

selenium设置代理

ip = "xxx"
port = xxx
profile = webdriver.FirefoxProfile()
profile.set_preference('network.proxy.type', 1)
profile.set_preference('network.proxy.socks', ip)
profile.set_preference('network.proxy.socks_port', port)
profile.set_preference('network.proxy.ssl', ip)
profile.set_preference('network.proxy.ssl_port', port)
self.driver = webdriver.Firefox(executable_path=self.FIREFOX_PATH,firefox_profile=profile)

python selenium错误

问题1

【异常】selenium.common.exceptions.WebDriverException: Message: {“errorMessage”:“‘undefined’ is not an object

【解决办法】
设置用户代理设置导致了这个问题,可能是phantomjs不支持相应的代理。
错误代码:

    dcap = dict(DesiredCapabilities.PHANTOMJS)
    dcap["phantomjs.page.settings.userAgent"] = (
        "User-Agent,Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0")
    driver = webdriver.PhantomJS(desired_capabilities=dcap)
    driver = webdriver.PhantomJS()

更正做法:

    driver = webdriver.PhantomJS()

问题 - KeyError问题

selenium中,把webdriver的firefox赋值给变量后,提示KeyError:’sessionId’ ?
出现这种情况的原因,可能是版本的问题。版本A 和 版本B 的中的key值发生了变化,所以系统交替的地方(firfox驱动 + selenium产生了不匹配)产生了问题。
解决办法:

pip install -U selenium

更新一下selenium

如果当前目录下有selenium目录,请更新一下,或删除掉

更新geckodriver.exe
参考:
关于该异常的一些讨论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值