這篇文章給大家分享的是有關(guān)python獲取js動(dòng)態(tài)加載數(shù)據(jù)的方法的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián):公司2013年成立為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為1000多家公司企業(yè)提供了專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)和網(wǎng)站推廣服務(wù), 按需網(wǎng)站建設(shè)由設(shè)計(jì)師親自精心設(shè)計(jì),設(shè)計(jì)的效果完全按照客戶的要求,并適當(dāng)?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據(jù)客戶的實(shí)際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。
我們在做網(wǎng)頁抓取的時(shí)候,一般來說使用urllib和urllib2就能滿足大部分需求。
但是有時(shí)候我們遇見那種使用js動(dòng)態(tài)加載的網(wǎng)頁。就會(huì)發(fā)現(xiàn)urllib只能抓出一個(gè)部分內(nèi)容空白的網(wǎng)頁。就像下面百度圖片的結(jié)果頁:
審查元素之后,發(fā)現(xiàn)百度圖片中,顯示圖片的div為:pullimages
這個(gè)div里面的內(nèi)容是動(dòng)態(tài)加載的。而使用urllib&urllib2是抓取不到的。
要抓取動(dòng)態(tài)加載的元素,首先考慮使用selenium來調(diào)用瀏覽器進(jìn)行抓取。
而我們運(yùn)行的環(huán)境是linux,最理想的方法是在無界面情況下進(jìn)行抓取,所以使用selenium+phantomjs來進(jìn)行無界面抓取。
phantomjs是什么呢?它是一個(gè)基于webkit內(nèi)核的無頭瀏覽器,即沒有UI界面,即它就是一個(gè)瀏覽器。
selenium和phantomjs的安裝配置可以google,這里就略過不談了。
代碼如下:
from selenium import webdriver driver = webdriver.PhantomJS(executable_path='/bin/phantomjs/bin/phantomjs') #如果不方便配置環(huán)境變量。就使用phantomjs的絕對路徑也可以 driver.get('http://image.baidu.com/i?ie=utf-8&word=%E5%91%A8%E6%9D%B0%E4%BC%A6') #抓取了百度圖片,query:周杰倫 driver.page_source #這就是返回的頁面內(nèi)容了,與urllib2.urlopen().read()的效果是類似的,但比urllib2強(qiáng)在能抓取到動(dòng)態(tài)渲染后的內(nèi)容。 driver.quit()
到這里。就抓取動(dòng)態(tài)頁面成功了。
感謝各位的閱讀!關(guān)于python獲取js動(dòng)態(tài)加載數(shù)據(jù)的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
網(wǎng)頁標(biāo)題:python獲取js動(dòng)態(tài)加載數(shù)據(jù)的方法
當(dāng)前鏈接:http://aaarwkj.com/article16/gpghdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站維護(hù)、網(wǎng)站建設(shè)、網(wǎng)站排名、域名注冊、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)