摘要:前言任何語言都是可以爬蟲的,只要你懂的常用的協(xié)議啥的就可以模仿瀏覽器的行為獲取你想要的數(shù)據(jù)。這里我將教大家一個(gè)簡單實(shí)用的案例如何獲取全民歌的下載鏈接。這就獲得所有參數(shù)最終的體了。這塊沒啥好說的,不是我們的教程范圍。我一般用的,,。
前言
任何語言都是可以爬蟲的,只要你懂的常用的http協(xié)議啥的就可以模仿瀏覽器的行為獲取你想要的數(shù)據(jù)。這里我將教大家一個(gè)簡單實(shí)用的案例:如何獲取全民K歌的下載鏈接。
ps: 這主要是教大家一個(gè)入門級的爬蟲,不是希望大家去跳過vip下載...
這里有碼云的代碼片段是main的解析可以參考下: 碼云代碼片段
那種專業(yè)fildder這類軟件抓包我就不提了,免得文章顯得更加復(fù)雜化。
推薦用谷歌瀏覽器容易看。
1.打開瀏覽器進(jìn)去一個(gè)分享鏈接
2.按F12進(jìn)入開發(fā)者模式
3.點(diǎn)擊NetWork
4.最好重新刷新一下頁面看下所有訪問路徑
只要是網(wǎng)頁瀏覽器就可以抓到所有的訪問請求。接下來就是尋找那個(gè)音樂的鏈接了:
等你找到你會發(fā)現(xiàn)很顯然,那個(gè)路徑?jīng)]有任何規(guī)律,也不知道下載路徑如何而來。但是只要思想不滑坡,辦法總比困難多。我們找一下是否可以在HTML這些直接找到現(xiàn)成的鏈接,音樂的播放標(biāo)簽一般都是 audio
我們?nèi)lement查找這個(gè)節(jié)點(diǎn)的時(shí)候可以發(fā)現(xiàn)確實(shí)有下載鏈接
這樣我們大概知道鏈接的地址了!我們就可以放開手?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ù)才加載出這個(gè)標(biāo)簽來播放音樂的。那這個(gè)下載地址是哪里來的呢。我們可以在打印出來的HTML可以找到其他線索:
不出所料,在所有script標(biāo)簽中 的第三個(gè)我們發(fā)現(xiàn)了貓膩。
所有的數(shù)據(jù)都在這個(gè)標(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解析成自己的實(shí)體類對象啥的了。這塊沒啥好說的,不是我們的教程范圍。我一般用的simpleJson,gson,fastJson。阿里巴巴的我用的多一點(diǎn)。
最后我把這段代碼功能接入我的微信公眾號實(shí)現(xiàn)效果:
小伙伴們可以關(guān)注公眾號體驗(yàn)一波:
該教程僅供學(xué)習(xí)參考,不涉及商業(yè),涉及侵權(quán)啥的任何問題本人概不負(fù)責(zé)啊哈哈哈哈哈略略略
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76739.html
摘要:前言任何語言都是可以爬蟲的,只要你懂的常用的協(xié)議啥的就可以模仿瀏覽器的行為獲取你想要的數(shù)據(jù)。這里我將教大家一個(gè)簡單實(shí)用的案例如何獲取全民歌的下載鏈接。這就獲得所有參數(shù)最終的體了。這塊沒啥好說的,不是我們的教程范圍。我一般用的,,。 前言 任何語言都是可以爬蟲的,只要你懂的常用的http協(xié)議啥的就可以模仿瀏覽器的行為獲取你想要的數(shù)據(jù)。這里我將教大家一個(gè)簡單實(shí)用的案例:如何獲取全民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); 前言 開始之前,我們先來看這樣一個(gè)提問: pyth...
摘要:用例運(yùn)行爬蟲命令基本語法是否需要項(xiàng)目存在當(dāng)然是不需要咯貌似這個(gè)命令是不依托一個(gè)項(xiàng)目而直接運(yùn)行一個(gè)爬蟲的命令。用例我終于寫完了,喜歡的就收藏推薦一下吧,這樣我就會更有動力寫新的教程了,哇哈哈 0. 基本環(huán)境說明 本文截圖及運(yùn)行環(huán)境均在Win8上實(shí)現(xiàn)(是的,我放假回家了,家里的機(jī)器是win8的沒有辦法),但基本步驟與win 7環(huán)境基本相同。(應(yīng)該把~)ps:我后來換了臺win7的電腦,所...
閱讀 1098·2021-09-22 15:19
閱讀 1715·2021-08-23 09:46
閱讀 2238·2021-08-09 13:47
閱讀 1416·2019-08-30 15:55
閱讀 1421·2019-08-30 15:55
閱讀 1981·2019-08-30 15:54
閱讀 2809·2019-08-30 15:53
閱讀 719·2019-08-30 11:03