問題
今天在使用selenium+PhantomJS動態抓取網頁時,出現以下報錯信息:web
UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '
翻譯過來就是:chrome
selenium已經放棄PhantomJS,了,建議使用火狐或者谷歌無界面瀏覽器。
解決方案
selenium版本降級
經過pip show selenium顯示,默認安裝版本爲3.8.1。
將其卸載pip uninstall selenium,從新安裝並指定版本號pip install selenium==2.48.0。
再次運行,發現沒有報錯,搞定!瀏覽器
使用無界面瀏覽器
Selenium+Headless Firefox
Selenium+Headless Firefox和Selenium+Firefox,區別就是實例option的時候設置-headless參數。less
前提條件:
- 本地安裝Firefox瀏覽器
- 本地須要geckodriver驅動器文件,若是不配置環境變量的話,須要手動指定executable_path參數。spa
示例代碼:firefox
from selenium.webdriver import Firefox from selenium.webdriver.firefox.options import Options def main(): options = Options() options.add_argument('-headless') driver = Firefox(executable_path='./geckodriver', firefox_options=options) driver.get("https://www.qiushibaike.com/8hr/page/1/") print(driver.page_source) driver.close() if __name__ == '__main__': main() Selenium+Headless Chrome
與Firefox相似,雙手奉上。翻譯
前提條件:
- 本地安裝Chrome瀏覽器
- 本地須要chromedriver驅動器文件,若是不配置環境變量的話,須要手動指定executable_path參數。code
示例:blog
from selenium import webdriver from selenium.webdriver.chrome.options import Options def main(): chrome_options = Options() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') driver = webdriver.Chrome(executable_path='./chromedriver', chrome_options=chrome_options) driver.get("https://www.baidu.com") print(driver.page_source) driver.close() if __name__ == '__main__': main()