我們?cè)谟胮ython做爬蟲(chóng)的時(shí)候,除了直接用requests的架構(gòu),還有Scrapy、Selenium等方式可以使用,那么今天我們就來(lái)聊一聊使用Selenium如何實(shí)現(xiàn)爬蟲(chóng)。
Selenium是什么?
Selenium是一個(gè)瀏覽器自動(dòng)化測(cè)試框架,是一款用于Web應(yīng)用程序測(cè)試的工具??蚣艿讓邮褂肑avaScript模擬真實(shí)用戶對(duì)瀏覽器進(jìn)行操作。測(cè)試腳本執(zhí)行時(shí),瀏覽器自動(dòng)按照腳本代碼做出點(diǎn)擊,輸入,打開(kāi),驗(yàn)證等操作,就像真實(shí)用戶所做的一樣,從終端用戶的角度測(cè)試應(yīng)用程序。使瀏覽器兼容性測(cè)試自動(dòng)化成為可能,盡管在不同的瀏覽器上依然有細(xì)微的差別。使用簡(jiǎn)單,可使用Java,Python等多種語(yǔ)言編寫(xiě)用例腳本。(百度百科)
如何使用Selenium?
首先下載Selenium這個(gè)庫(kù),pip install selenium。接著查看Selenium支持的瀏覽器,這里就使用都會(huì)有的chrome谷歌瀏覽器,如果想要查看能用什么瀏覽器可以使用下面這些代碼,就可以看到支持的瀏覽器和版本:
from selenium import webdriver
help(webdriver)
然后再對(duì)應(yīng)著瀏覽器的版本找相應(yīng)的瀏覽器驅(qū)動(dòng)。
驅(qū)動(dòng)的位置一定要放在沒(méi)有中文字符的文件夾中,好這個(gè)地址,有用。
使用Selenium主要是調(diào)用它的webdriver模塊,具體操作如下:
from selenium import webdriver
path = '/Users/14163/Downloads/chromedriver_win32/chromedriver.exe'#這里是保存的驅(qū)動(dòng)的位置
browser = webdriver.Chrome(executable_path=path) #初始化驅(qū)動(dòng)對(duì)象
browser.get('http://www.baidu.com') #獲取url
print(browser.page_source) #輸出獲取到的文件數(shù)據(jù)
browser.close() #關(guān)閉瀏覽器
結(jié)果:
再對(duì)比一下requests獲取的網(wǎng)頁(yè)的數(shù)據(jù):
很明顯selenium能獲取得到的內(nèi)容更多selenium有相應(yīng)的函數(shù)去查找數(shù)據(jù),單個(gè)元素的三種不同的方式去獲取響應(yīng)的元素,第一種是通過(guò)id的方式,第二個(gè)中是CSS選擇器,第三種是xpath選擇器,結(jié)果都是相同的。
這里是按id去查找,可以加text或者tag獲取里面的內(nèi)容。
或者可以調(diào)用另一個(gè)庫(kù)去獲取id,By
先 導(dǎo)入庫(kù):
from selenium.webdriver.common.by import By
這樣就可以獲取網(wǎng)頁(yè)的數(shù)據(jù)。
這些只是獲取一個(gè)元素的,可以獲取多個(gè)元素加用find_elements即可。
交互操作:
對(duì)網(wǎng)頁(yè)進(jìn)行操作,比如在百度的搜索框輸入孤獨(dú)的s,然后點(diǎn)擊搜索就可以這樣:
按以下代碼:
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
path = '/Users/14163/Downloads/chromedriver_win32/chromedriver.exe'
browser = webdriver.Chrome(executable_path=path)
browser.get('http://www.baidu.com')
input_first = browser.find_element(By.ID,"kw")
print(input_first)
input_first.send_keys("孤獨(dú)的s")
time.sleep(0.1)
button = browser.find_element_by_class_name('s_btn_wr') #這里獲取百度搜索的那個(gè)按鈕
button.click()# 點(diǎn)擊
結(jié)果:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-535107.html
在chrome中想要找到對(duì)應(yīng)的按鈕的元素或者id,可以點(diǎn)擊紅圈這個(gè),然后再去移動(dòng)去原網(wǎng)頁(yè),就可以知道結(jié)果:
不得不說(shuō),selenium真便利。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-535107.html
到了這里,關(guān)于Python爬蟲(chóng)之用Selenium做爬蟲(chóng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!