今天帶給大家的是一款爬蟲神器-selenium,使用該庫可以對(duì)付絕大部分的網(wǎng)站,不論這網(wǎng)站反爬策略多么的厲害,在selenium面前經(jīng)常失效。
selenium是什么?
官網(wǎng)中介紹selenium
Selenium automates browsers. That's it! What you do with that power is entirely up to you. Primarily, it is for automating web applications for testing purposes, but is certainly not limited to just that. Boring web-based administration tasks can (and should!) also be automated as well.
Selenium自動(dòng)化瀏覽器。 你用這種力量做什么完全取決于你。首先,它是為了測(cè)試目的自動(dòng)化web應(yīng)用程序,但是當(dāng)然不僅限于此。 基于Web的管理任務(wù)也可以(也應(yīng)該)自動(dòng)化。
為什么selenium好用?
一般的寫爬蟲的方法是用python腳本直接對(duì)目標(biāo)網(wǎng)站進(jìn)行訪問,而且只對(duì)目標(biāo)數(shù)據(jù)進(jìn)行采集,訪問速度很快,這樣目標(biāo)網(wǎng)站很容易就識(shí)別出你是機(jī)器人,然后把你封鎖了~~
而
使用selenium寫爬蟲,python腳本操控瀏覽器進(jìn)行訪問,也就是說python腳本和目標(biāo)網(wǎng)站之間多了個(gè)瀏覽器的操作,這樣的行為更像是人類行為。這樣很多難爬的網(wǎng)站也可以輕而易舉的抓數(shù)據(jù)了。
使用selenium的準(zhǔn)備
selenium支持IE,Chrome,Firefox多個(gè)瀏覽器,我習(xí)慣用Firefox,而且我沒在其他瀏覽器使用成功過,所以建議大家跟我一起用Firefox吧。
火狐瀏覽器各種版本下載地址
http://ftp.mozilla.org/pub/firefox/releases/
首先要確保你自己安裝了Firefox瀏覽器比較新的版本,現(xiàn)在最新的是52。安裝好firebug,下載網(wǎng)址為https://www.mozilla.org/en-US/firefox/developer/
再安裝firepath,安裝網(wǎng)址https://addons.mozilla.org/en-US/firefox/addon/firepath/
然后再安裝firefox36,經(jīng)過測(cè)試selenium對(duì)新版本firefox支持的不好,經(jīng)常出問題,為了避免初學(xué)者遇到困難,建議大家安裝firefox36,勿謂言之不預(yù)。(下載資源請(qǐng)先關(guān)注公眾號(hào):大鄧帶你玩轉(zhuǎn)python,公眾號(hào)回復(fù)“火狐36”,即可獲得項(xiàng)目源碼和火狐瀏覽器下載資源)
selenium基本知識(shí)
from selenium import webdriver
from bs4 import BeautifulSoup
初始化瀏覽器
driver = webdriver.Firefox()
打開某個(gè)網(wǎng)址
driver.get(url)
如果網(wǎng)站需要輸入登錄賬號(hào)密碼
這里用到firepath找到目標(biāo)位置的xpath
找到輸入賬號(hào)框,清除框內(nèi)信息,再輸入你的賬號(hào)
driver.find_element_by_xpath(xpath).clear()
driver.find_element_by_xpath(xpath).send_keys("你的賬號(hào)")
找到輸入密碼框,清除框內(nèi)信息,再輸入你的密碼
driver.find_element_by_xpath(xpath).clear()
driver.find_element_by_xpath(xpath).send_keys("你的密碼")
定位“點(diǎn)擊登錄”框的位置的xpath,執(zhí)行登錄
driver.find_element_by_xpath(xpath).click()
訪問你想爬的網(wǎng)頁的網(wǎng)址
driver.get(url)
獲取該網(wǎng)頁的源碼
html = driver.page_source
BeautifulSoup定位標(biāo)簽
bsObj =?BeautifulSoup(html,‘html.parser’)
再之后如何操作很簡(jiǎn)單,我就不寫了啊,視頻里有
xpath如何獲得呢?
首先確保你已經(jīng)安裝好firefox新版本,并且安裝好插件firebug和firepath。
然后,請(qǐng)看下圖學(xué)習(xí)
首先點(diǎn)擊圖中1,打開firebug
然后,點(diǎn)擊圖中2,打開firepath
再然后,點(diǎn)擊圖中的3,箭頭
再然后,點(diǎn)擊目標(biāo)位置,例如圖中的4為賬號(hào)輸入框
最后,在圖中5復(fù)制xpath的值
任何元素的定位都重復(fù)上述步驟
代碼
運(yùn)行效果
你看屏幕自動(dòng)彈出一個(gè)瀏覽器,并且瀏覽器自己自動(dòng)翻頁瀏覽,很詭異,就像電腦被一個(gè)透明人操控似的。
截圖看不出效果建議大家觀看視頻
關(guān)注公眾號(hào):大鄧帶你玩轉(zhuǎn)python
在公眾號(hào)后臺(tái)回復(fù)“火狐36”,即可獲得項(xiàng)目源碼和火狐36的下載資源