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