為什么要用seleniumwire而不用原生的selenium
最近需要抓取一個(gè)頁(yè)面的信息嚎幸,但是頁(yè)面需要登錄,登錄后會(huì)默認(rèn)生成一個(gè)授權(quán)碼,這個(gè)默認(rèn)的授權(quán)碼是在Header里的谬俄,所以我需要selenium在模擬登錄的時(shí)候能夠獲取到這個(gè)授權(quán)碼,在python的包里面的找來找去就找到了seleniumwire金蜀,安裝方法就是
pip install selenium-wire
但是這個(gè)包在請(qǐng)求的時(shí)候不會(huì)包錯(cuò)竞惋,當(dāng)我發(fā)送登錄的時(shí)候燎潮,就會(huì)報(bào)502 bad gate way,后來憨闰,我在代碼中加入下面的兩行状蜗,輸出包的系統(tǒng)日志
import logging
logging.basicConfig(level=logging.DEBUG)
發(fā)現(xiàn)報(bào)了一個(gè)證書認(rèn)證錯(cuò)誤,錯(cuò)誤如下
經(jīng)過反復(fù)的搜索鹉动,發(fā)現(xiàn)這個(gè)網(wǎng)站需要開啟一個(gè)個(gè)人的證書認(rèn)證诗舰,可能沒有證書認(rèn)證才導(dǎo)致ssl.SSLCertVerificationError,所以看了官方的教程训裆,可以人為的關(guān)閉這個(gè)認(rèn)證眶根,不驗(yàn)證就不會(huì)報(bào)湊,所以采用下面的代碼就可以做到属百。
browser = webdriver.Firefox(executable_path='D:/bin/geckodriver.exe', seleniumwire_options={'verify_ssl': False})
至此問題解決,記錄一下這個(gè)錯(cuò)誤变姨,希望能幫助到遇到這個(gè)問題的人族扰。