摘要:前言任何語(yǔ)言都是可以爬蟲(chóng)的,只要你懂的常用的協(xié)議啥的就可以模仿瀏覽器的行為獲取你想要的數(shù)據(jù)。這里我將教大家一個(gè)簡(jiǎn)單實(shí)用的案例如何獲取全民歌的下載鏈接。這就獲得所有參數(shù)最終的體了。這塊沒(méi)啥好說(shuō)的,不是我們的教程范圍。我一般用的,,。
前言
任何語(yǔ)言都是可以爬蟲(chóng)的,只要你懂的常用的http協(xié)議啥的就可以模仿瀏覽器的行為獲取你想要的數(shù)據(jù)。這里我將教大家一個(gè)簡(jiǎn)單實(shí)用的案例:如何獲取全民K歌的下載鏈接。
ps: 這主要是教大家一個(gè)入門(mén)級(jí)的爬蟲(chóng),不是希望大家去跳過(guò)vip下載...
這里有碼云的代碼片段是main的解析可以參考下: 碼云代碼片段
那種專業(yè)fildder這類軟件抓包我就不提了,免得文章顯得更加復(fù)雜化。
推薦用谷歌瀏覽器容易看。
1.打開(kāi)瀏覽器進(jìn)去一個(gè)分享鏈接
2.按F12進(jìn)入開(kāi)發(fā)者模式
3.點(diǎn)擊NetWork
4.最好重新刷新一下頁(yè)面看下所有訪問(wèn)路徑
只要是網(wǎng)頁(yè)瀏覽器就可以抓到所有的訪問(wèn)請(qǐng)求。接下來(lái)就是尋找那個(gè)音樂(lè)的鏈接了:
等你找到你會(huì)發(fā)現(xiàn)很顯然,那個(gè)路徑?jīng)]有任何規(guī)律,也不知道下載路徑如何而來(lái)。但是只要思想不滑坡,辦法總比困難多。我們找一下是否可以在HTML這些直接找到現(xiàn)成的鏈接,音樂(lè)的播放標(biāo)簽一般都是 audio
我們?nèi)lement查找這個(gè)節(jié)點(diǎn)的時(shí)候可以發(fā)現(xiàn)確實(shí)有下載鏈接
這樣我們大概知道鏈接的地址了!我們就可以放開(kāi)手?jǐn)]代碼了!
這里我推薦用Jsoup,我用的是版本是1.11.2。
maven: http://www.mvnrepository.com/...
public class QuanMinJousp { public static void main(String[] args)throws Exception { //這里是分享地址: String url ="https://kg2.qq.com/node/play?s=571cI75H1xb495Eq&shareuid=609c9b812624338a&topsource=a0_pn201001006_z11_u21643941_l0_t1534223843__"; Connection tempConn = Jsoup.connect(url); //模擬瀏覽器的請(qǐng)求頭 tempConn.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"); //開(kāi)始連接HTTP請(qǐng)求。 Connection.Response demo = tempConn.ignoreContentType(true).method(Connection.Method.GET) .execute(); Document documentDemo = demo.parse(); //這里就是獲取該頁(yè)面的HTML元素。 System.out.println(documentDemo.toString()); } }
打印出來(lái)的HTML不出所料,就找不到audio的標(biāo)簽,很明顯是后續(xù)才加載出這個(gè)標(biāo)簽來(lái)播放音樂(lè)的。那這個(gè)下載地址是哪里來(lái)的呢。我們可以在打印出來(lái)的HTML可以找到其他線索:
不出所料,在所有script標(biāo)簽中 的第三個(gè)我們發(fā)現(xiàn)了貓膩。
所有的數(shù)據(jù)都在這個(gè)標(biāo)簽里,包括評(píng)論,送花,歌曲鏈接等等所有都在里面。我們拿到標(biāo)簽里的內(nèi)容就可以了。里面的參數(shù)竟然是標(biāo)準(zhǔn)的json格式更加天助我也!我們用代碼去掉閑雜人等。
Elements scriptElements = documentDemo.getElementsByTag("script"); String initScriptStr = scriptElements.get(2).toString(); String jsonStr = initScriptStr.substring(initScriptStr.indexOf("{"), initScriptStr.indexOf("; ")); //這就獲得所有參數(shù)最終的json體了。 System.out.println(jsonStr);
接下來(lái)就是Json解析成自己的實(shí)體類對(duì)象啥的了。這塊沒(méi)啥好說(shuō)的,不是我們的教程范圍。我一般用的simpleJson,gson,fastJson。阿里巴巴的我用的多一點(diǎn)。
最后我把這段代碼功能接入我的微信公眾號(hào)實(shí)現(xiàn)效果:
小伙伴們可以關(guān)注公眾號(hào)體驗(yàn)一波:
該教程僅供學(xué)習(xí)參考,不涉及商業(yè),涉及侵權(quán)啥的任何問(wèn)題本人概不負(fù)責(zé)啊哈哈哈哈哈略略略
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/108145.html
摘要:前言任何語(yǔ)言都是可以爬蟲(chóng)的,只要你懂的常用的協(xié)議啥的就可以模仿瀏覽器的行為獲取你想要的數(shù)據(jù)。這里我將教大家一個(gè)簡(jiǎn)單實(shí)用的案例如何獲取全民歌的下載鏈接。這就獲得所有參數(shù)最終的體了。這塊沒(méi)啥好說(shuō)的,不是我們的教程范圍。我一般用的,,。 前言 任何語(yǔ)言都是可以爬蟲(chóng)的,只要你懂的常用的http協(xié)議啥的就可以模仿瀏覽器的行為獲取你想要的數(shù)據(jù)。這里我將教大家一個(gè)簡(jiǎn)單實(shí)用的案例:如何獲取全民K歌的下...
摘要:學(xué)習(xí)筆記七數(shù)學(xué)形態(tài)學(xué)關(guān)注的是圖像中的形狀,它提供了一些方法用于檢測(cè)形狀和改變形狀。學(xué)習(xí)筆記十一尺度不變特征變換,簡(jiǎn)稱是圖像局部特征提取的現(xiàn)代方法基于區(qū)域圖像塊的分析。本文的目的是簡(jiǎn)明扼要地說(shuō)明的編碼機(jī)制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開(kāi)始之前,我們先來(lái)看這樣一個(gè)提問(wèn): pyth...
摘要:用例運(yùn)行爬蟲(chóng)命令基本語(yǔ)法是否需要項(xiàng)目存在當(dāng)然是不需要咯貌似這個(gè)命令是不依托一個(gè)項(xiàng)目而直接運(yùn)行一個(gè)爬蟲(chóng)的命令。用例我終于寫(xiě)完了,喜歡的就收藏推薦一下吧,這樣我就會(huì)更有動(dòng)力寫(xiě)新的教程了,哇哈哈 0. 基本環(huán)境說(shuō)明 本文截圖及運(yùn)行環(huán)境均在Win8上實(shí)現(xiàn)(是的,我放假回家了,家里的機(jī)器是win8的沒(méi)有辦法),但基本步驟與win 7環(huán)境基本相同。(應(yīng)該把~)ps:我后來(lái)?yè)Q了臺(tái)win7的電腦,所...
閱讀 2020·2023-04-25 22:50
閱讀 2833·2021-09-29 09:35
閱讀 3390·2021-07-29 10:20
閱讀 3152·2019-08-29 13:57
閱讀 3355·2019-08-29 13:50
閱讀 3032·2019-08-26 12:10
閱讀 3529·2019-08-23 18:41
閱讀 2634·2019-08-23 18:01