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