因?yàn)橐恢毕矚gpython的簡(jiǎn)潔,所以各方面都有所涉獵,最近在研究scrapy,希望能在兩個(gè)星期內(nèi)能夠把一個(gè)網(wǎng)站用scrapy爬出來(lái)吧乒融,在學(xué)習(xí)爬蟲(chóng)過(guò)程中希望能夠更深入的了解py,所以最近放松時(shí)間又看了關(guān)于selenium的相關(guān)資料,鑒于共同學(xué)習(xí)的想法寫(xiě)下自己的認(rèn)識(shí)吧逞带。
其實(shí)應(yīng)該各位老司機(jī)大概都聽(tīng)過(guò)selenium,但是不知道他是個(gè)什么姿勢(shì)纱新,我之前也聽(tīng)過(guò)展氓,但是也不怎么清楚是干啥的,反正在各大相關(guān)py中都有他的身影脸爱,只知道他是主要用于Web應(yīng)用程序的自動(dòng)化測(cè)試遇汞。每次聽(tīng)到自動(dòng)化都有一種很興奮的趕腳,畢竟之前聽(tīng)過(guò)一位老司機(jī)用py進(jìn)行比特幣量化交易的例子簿废,當(dāng)然這僅僅只是在金融行業(yè)里面的某個(gè)小范圍而已空入。所謂Web自動(dòng)化大概就是模擬鼠標(biāo)和鍵盤(pán)操作一些東西吧,這個(gè)感覺(jué)和爬蟲(chóng)類似但卻不相同族檬,爬蟲(chóng)是掃歪赢,而Web自動(dòng)化大概就是模擬人點(diǎn)的意思吧說(shuō)得太抽象,上一哈代碼大概老司機(jī)就都知道了:
先說(shuō)目的单料,我的目的就是埋凯,到必應(yīng)搜索出出車(chē)牌號(hào)bf-389
那么如果按照這個(gè)目的,大概會(huì)有幾個(gè)步驟看尼,1,選擇瀏覽器 ? ? ? 2.打開(kāi)網(wǎng)址必應(yīng) ? ? ? 3.點(diǎn)到搜索框 ? ? ? ? ? ? ? 4.寫(xiě)入bf-389 ?5.點(diǎn)擊递鹉、或者是回車(chē)搜索按鈕完成搜索,那么用代碼實(shí)現(xiàn)就是:
# coding=utf-8 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #防止有亂碼
from selenium import webdriver ? ? ?#從selenium導(dǎo)入webdriver藏斩,直接導(dǎo)入就太長(zhǎng)了selenium.webdriver....
olddriver = webdriver.Firefox() ? ? ? ?#這個(gè)的意思是獲得瀏覽器對(duì)象躏结,也就是相當(dāng)于我要用火狐來(lái)開(kāi)車(chē), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?webdriver里面當(dāng)然也有很多的汽車(chē)可以供選擇狰域,比如chrome媳拴,IE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?等等如果你想用chrome黄橘,那么賦值就olddriverwebdriver.Chrome()
olddriver.get('http://cn.bing.com/ ') ? #這個(gè)就是通過(guò)get來(lái)向Firfox瀏覽器發(fā)送必應(yīng)的URL
""" 接下來(lái)就是全自動(dòng)的自動(dòng)化過(guò)程了"""
olddriver.find_element_by_id('sb_form_q').send_keys('bf-389') ?#找到必應(yīng)的搜索框在網(wǎng)頁(yè)中對(duì)應(yīng)的元素
olddriver.find_element_by_id('sb_form_go').click() ? ? ? ? ? #找到必應(yīng)搜索,也就是點(diǎn)擊搜索的按鈕
olddriver.quit() ? #熄火下車(chē)塞关。
然后就啟動(dòng)代碼,然后就能找到bf389的車(chē)牌了子巾!
注意事項(xiàng)
首先我用的是Ubuntu系統(tǒng)帆赢,win的系統(tǒng)大概也是這樣,只要記住核心步驟就行线梗,然后對(duì)于Ubuntu來(lái)說(shuō)椰于,可能安裝selenium比較簡(jiǎn)單,但是難就難在有可能你執(zhí)行不了webdriver這個(gè)命令仪搔,原因很大可能是瘾婿,你的Firefox瀏覽器的版本和你的Ubuntu版本不一致,或者是你的Firefox所在的位置webdriver找不到烤咧,這里就不細(xì)說(shuō)了偏陪,只有自己碰到了才會(huì)記住。stackoverflow上面都會(huì)有解答煮嫌,如果各位老司機(jī)也碰到問(wèn)題笛谦,最好的方法是自己解決問(wèn)題,車(chē)有問(wèn)題還是你修是不是昌阿,作為老司機(jī)的我只能告訴你揪罕,google,biying宝泵,stackoverflow都有相關(guān)問(wèn)題的解答,望各位老司機(jī)共勉加油轩娶!