python爬取js加载的数据_JS动态加载数据不会爬?老司机教你两个方法爬取想要的数据...
學(xué)習(xí)Python的人絕大部分都是在用Python做爬蟲,畢竟對(duì)于爬蟲而言Python是不二選。
但是一般簡單的靜態(tài)頁面網(wǎng)站還是很好爬取的,對(duì)于很多動(dòng)態(tài)加載的網(wǎng)站就不知道怎么辦了,今天小編就給大家介紹兩種爬取js加載的動(dòng)態(tài)數(shù)據(jù),希望對(duì)爬蟲方面有所幫助!
今天咱們就以高考查詢網(wǎng)站為例!
如何知道這個(gè)網(wǎng)站是動(dòng)態(tài)加載的數(shù)據(jù)?
用瀏覽器,這里小編建議使用火狐或者谷歌這個(gè)想必大家都知道的
打開你網(wǎng)頁,右鍵查看頁面源代碼,ctrl +F 查詢輸入293,源代碼里面并沒有這個(gè)值,說明是動(dòng)態(tài)加載數(shù)據(jù)。
它的網(wǎng)址是: 數(shù)字代表的第幾頁。它一共是165頁
所以想要獲取全部的url地址就非常簡單了
對(duì)于動(dòng)態(tài)加載數(shù)據(jù),我們常用的兩個(gè)方法:
使用selenium
分析網(wǎng)頁元素,找出該數(shù)據(jù)的原始網(wǎng)頁,提交表單,獲取不同的數(shù)據(jù),用來達(dá)到爬取的目的。
方法一selenium:
為什么要這么寫,代碼里面表明了注釋!
小結(jié):
通過對(duì)數(shù)據(jù)的分析,寫出上面的查找方法,即可獲取所有數(shù)據(jù)。
通過這種方法獲取數(shù)據(jù),簡單,也比較直觀,缺點(diǎn)是太慢了。
方法二分析網(wǎng)頁元素,找出該數(shù)據(jù)的原始網(wǎng)頁,提交表單,獲取不同的數(shù)據(jù),用來達(dá)到爬取的目的。:
既然要分析網(wǎng)頁元素,首先我們肯定是要用到了開發(fā)者工具,按F12就可以打開瀏覽器自帶的開發(fā)者工具。如下圖
分析得知類型為json的那一欄即是我們需要的數(shù)據(jù)
查看消息頭里面的請(qǐng)求網(wǎng)站:
https://data-gkcx.eol.cn/soudaxue/queryProvince.html?messtype=jsonp&callback=jQuery183005011523805365803_1512185796058&luqutype3=&province3=&year3=&luqupici3=&page=2&size=10&_=1512185798203
真正的請(qǐng)求網(wǎng)站:
https://data-gkcx.eol.cn/soudaxue/queryProvince.html
參數(shù) :
messtype=jsonp&callback=jQuery183005011523805365803_1512185796058&luqutype3=&province3=&year3=&luqupici3=&page=2&size=10&_=1512185798203
也可以點(diǎn)擊右側(cè)的參數(shù)欄參看參數(shù)
詳情代碼
方法很簡單,主要還是自己動(dòng)手去實(shí)踐,實(shí)踐才能出真知,在岸上學(xué)游泳是永遠(yuǎn)也學(xué)不會(huì)的。就這么簡單的兩種方法就可以爬取JS加載的動(dòng)態(tài)數(shù)據(jù)了,方法都挺簡單的,你學(xué)會(huì)了么?趕緊去試試吧!
總結(jié)
以上是生活随笔為你收集整理的python爬取js加载的数据_JS动态加载数据不会爬?老司机教你两个方法爬取想要的数据...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 双十一招商银行信用卡瓜分千万积分!超多福
- 下一篇: python tcp协议_python