人生若只如初見,何必找包爬數據

爬蟲最頭疼的就是非同步載入和模擬登陸了,我們不禁感慨,要是全部數據都在源代碼,那該有多好啊!那今天就講解下利用Selenium模擬瀏覽器,讓非同步載入的東西原形畢露。

Selenium

Selenium是一套完整的Web應用程序測試系統,完全由JavaScript編寫,因此可運行於任何支持JavaScript的瀏覽器上。通過pip安裝即可。

pip3 install seleniumn

PhantomJS

在網路爬蟲中,主要運用Selenium的Webdriver模塊,Webdriver沒有瀏覽器,我們需要選擇瀏覽器,這裡選擇「無頭」的PhantomJS,無頭就是沒有界面,這就意味著開支小,速度快。我們去官網下載(這裡網速不行,需要翻牆)。

最後,要把PhantomJS添加到環境變數,因為Python是加入了環境變數,所以把PhantomJS拷貝到Python同個文件夾下。

豆瓣登陸

先上代碼

from selenium import webdriverndriver = webdriver.PhantomJS()#實例化請求頭ndriver.get(https://www.douban.com/)#請求網站ndriver.implicitly_wait(10)#隱式等待ndriver.find_element_by_id(form_email).clear()ndriver.find_element_by_id(form_email).send_keys(賬號)#輸入賬號ndriver.find_element_by_id(form_password).clear()ndriver.find_element_by_id(form_password).send_keys(密碼)#輸入密碼ndriver.find_element_by_class_name(bn-submit).click()#登陸nprint(driver.page_source)#列印源代碼n

看看網頁源代碼,可以看到我已經登陸成功了。

Selenium有個致命的缺陷,就是慢!!!所以人生無常,相見不如不見。

作者:羅羅攀 Python愛好者社區專欄作者,請勿轉載,謝謝。

簡書主頁:羅羅攀 - 簡書

博客專欄:羅羅攀的博客

配套視頻教程:Python3爬蟲三大案例實戰分享:貓眼電影、今日頭條街拍美圖、淘寶美食 Python3爬蟲三大案例實戰分享

公眾號:Python愛好者社區(微信ID:python_shequ),關注,查看更多連載內容。

推薦閱讀:

Python面向對象編程從零開始(4)—— 小姐姐請客下篇
python中list, array的轉換
國慶回家避免不了相親,使用python抓取婚戀網妹子決策點快速脫單
【譯】Tempy-高性能面向對象的HTML模板庫
Python愛好者必看11個常用站點

TAG:Python | Python教程 | python爬虫 |