python爬蟲實(shí)戰(zhàn)經(jīng)典案例,突破反爬绅项!爬取短視頻!

今天在爬取某梨短視頻時(shí)放前,發(fā)現(xiàn)前端代碼跟之前都不一樣了。加入了很多的反爬措施糯彬。在此特意記錄一下凭语!

先來看一下最終執(zhí)行結(jié)果:

爬蟲重要的不是寫代碼,而是分析撩扒!分析它的網(wǎng)頁(yè)請(qǐng)求似扔!

爬蟲的基本過程一般如下:

????1-發(fā)送請(qǐng)求

????2-獲取響應(yīng)

????3-解析并提取數(shù)據(jù)

????4-保存數(shù)據(jù)

1.分析翻頁(yè)網(wǎng)頁(yè)

11.首先我們進(jìn)入某梨視頻首頁(yè)如下,今天準(zhǔn)備爬取的排行榜中的視頻:

1.2.點(diǎn)開排行榜網(wǎng)頁(yè)我們先來簡(jiǎn)單分析一下搓谆,發(fā)現(xiàn)它默認(rèn)顯示10個(gè)視頻虫几。

1.3.點(diǎn)擊‘加載更多’或者繼續(xù)下拉它會(huì)繼續(xù)添加10個(gè)視頻。是不是可以簡(jiǎn)單理解為它是以10為步長(zhǎng)的格式來顯示視頻的挽拔?

1.4.我們找到翻頁(yè)功能對(duì)用的這個(gè)鏈接:

1.5.觀察一下這個(gè)翻頁(yè)鏈接:

https://www.pearvideo.com/popular_loading.jsp?reqType=1&categoryId=&start=10&sort=10&mrd=0.4643802437122859

發(fā)現(xiàn)它其中一個(gè)參數(shù):start=10&sort=10

可以確認(rèn)它是從第十條開始的,然后每頁(yè)10條數(shù)據(jù)展示的方式顯示的但校。

1.6.網(wǎng)頁(yè)分析完成之后我們來進(jìn)行編碼:

1.7.可以看出螃诅,我們?cè)诜?yè)這一層已經(jīng)成功的爬到數(shù)據(jù)了。

2.分析視頻網(wǎng)頁(yè)

2.1.接下來我們點(diǎn)開視頻状囱,然后F12找到當(dāng)前視頻的請(qǐng)求鏈接

https://www.pearvideo.com/videoStatus.jsp?contId=1707705&mrd=0.8367214711596567

2.2.然后我們使用該鏈接模擬網(wǎng)絡(luò)請(qǐng)求看是否可以獲取到我們想要的視頻

{"resultCode":"5","resultMsg":"該文章已經(jīng)下線术裸!","systemTime": "1605792063821"}

可以看出這條路是不行的,但是視頻是確實(shí)存在的亭枷,為什么會(huì)顯示文章下線了呢袭艺?有沒有想到被反爬了呢?

2.3.咱們繼續(xù)分析網(wǎng)頁(yè):

我們可以在Elements中也可以發(fā)現(xiàn)一個(gè)視頻鏈接:

https://video.pearvideo.com/mp4/adshort/20201118/cont-1707705-15490519_adpkg-ad_hd.mp4

2.4點(diǎn)開這條鏈接發(fā)現(xiàn)是可以成功播放和下載的叨粘,說明我們最終要獲取的視頻里鏈接就是這條:

但是這條鏈接通過上面網(wǎng)頁(yè)分析是獲取不到的猾编,顯示文章下線還記得嗎瘤睹?所以我們還需要繼續(xù)分析。

2.5經(jīng)過分析觀察答倡,我們?cè)趐review中發(fā)現(xiàn)一個(gè)MP4格式的視頻播放鏈接轰传,會(huì)不會(huì)是這個(gè)呢?

2.6.點(diǎn)開看一下發(fā)現(xiàn)是一條無效的鏈接瘪撇。

2.7.現(xiàn)在通過網(wǎng)頁(yè)分析出三條鏈接:

視頻鏈接:???? https://www.pearvideo.com/videoStatus.jsp?contId=1707705&mrd=0.8367214711596567網(wǎng)頁(yè)可播放鏈接:https://video.pearvideo.com/mp4/adshort/20201118/cont-1707705-15490519_adpkg-ad_hd.mp4網(wǎng)頁(yè)請(qǐng)求連接:https://video.pearvideo.com/mp4/adshort/20201118/1605832871738-15490519_adpkg-ad_hd.mp4

再來捋一下啊获茬。

我們通過視頻鏈接得到的是網(wǎng)頁(yè)請(qǐng)求連接,也就是第三個(gè)倔既。但是這個(gè)鏈接顯示的是404恕曲。

嵌套在網(wǎng)頁(yè)中可播放視頻的真實(shí)鏈接是第二個(gè),但是我們請(qǐng)求不到渤涌。

所以我們就要想法子通過第三個(gè)鏈接構(gòu)造出類似于第二個(gè)的可播放鏈接佩谣。

先來觀察一下他們之間不同之處:發(fā)現(xiàn)這兩個(gè)視頻鏈接不同之處就在于一個(gè)是時(shí)間戳,一個(gè)是video_id歼捏。也就是說我們只要將第三個(gè)鏈接的時(shí)間戳改成跟第二個(gè)一樣的video_id即可成功播放該視頻稿存。但是video_id又是在第一個(gè)鏈接中,所以我們就要想辦法通過造出這條第二條可播放視頻的鏈接瞳秽。

2.8.剛才通過翻頁(yè)鏈接我們已經(jīng)得到video_id和video_name了瓣履。

2.9現(xiàn)在我們需要用正則將其提取出來即可:

['1707591', '1707705', '1707750', '1707696', '1707630', '1707694', '1707710', '1707688', '1707716']

['女大學(xué)生自殺留遺書稱遭系領(lǐng)導(dǎo)性騷擾:常被摟抱,讓叫其爸爸', '外賣小哥大火中救出同行:即使自己被燒练俐,也必須救人', '無錫城管回應(yīng)文明城市落選后抓狗:落選暴露出弊端袖迎,加強(qiáng)管理', '延期2年交房每平還要漲價(jià)1500元,售樓處:不同意就按退房處理', '蛋殼公寓稱仍可正常租房,律師支招蛋殼租客房東如何維權(quán)', '護(hù)士在副院長(zhǎng)家樓頂自殺,父母拒收32萬賠償:他要求我們不發(fā)聲', '幼兒園點(diǎn)名憑空多出1個(gè)娃,誰都不認(rèn)識(shí):親媽首次送還送錯(cuò)地方', '痛惜腺晾!安徽2名藍(lán)天救援隊(duì)員潛水訓(xùn)練時(shí)遇難燕锥,一人捐出遺體', '四川眉山一水泥罐車與公交車追尾,致15人受傷悯蝉,事發(fā)監(jiān)控曝光', '愛馬仕將建最大鱷魚養(yǎng)殖場(chǎng)归形,5萬只用來供應(yīng)皮革和肉類產(chǎn)品']

2.10可以發(fā)現(xiàn)我們視頻所需的video_id和video_name都已經(jīng)被展示出來了

2.11接下來就是提取視頻播放鏈接然后替換我們已經(jīng)獲取到video_id即可。還記得剛才的文章下線嗎鼻由,就是被反爬了暇榴。加入我們的爬蟲三件套。

2.12可以看出我們獲取到視頻播放鏈接蕉世,再不是剛才的文章下線提示了蔼紧。但這個(gè)不是真正的地址。還需要用video_id進(jìn)行對(duì)時(shí)間戳的替換

https://video.pearvideo.com/mp4/adshort/20201118/1605835214479-15490655_adpkg-ad_hd.mp4https://video.pearvideo.com/mp4/adshort/20201118/1605835231211-15490519_adpkg-ad_hd.mp4https://video.pearvideo.com/mp4/adshort/20201119/1605835236250-15490907_adpkg-ad_hd.mp4https://video.pearvideo.com/mp4/adshort/20201118/1605835241582-15490403_adpkg-ad_hd.mp4

2.13所以接下來我們要做的就是替換狠轻,我們用正則表達(dá)式來實(shí)現(xiàn)

2.14可以看到所有鏈接的時(shí)間戳都已經(jīng)成功被video_id替換奸例。接下來我們找一個(gè)真實(shí)的鏈接試一下看是否可以成功播放

2.15可以看到是沒有任何問題的。

接下來我們需要將這些視頻進(jìn)行保存向楼。

2.16現(xiàn)在視頻已經(jīng)被我們成功保存到指定位置了查吊!

源碼已經(jīng)上傳谐区,需要的童鞋可以關(guān)注微信公眾號(hào)'印象python'回復(fù)‘某梨視頻

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市菩貌,隨后出現(xiàn)的幾起案子卢佣,更是在濱河造成了極大的恐慌,老刑警劉巖箭阶,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件虚茶,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡仇参,警方通過查閱死者的電腦和手機(jī)嘹叫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诈乒,“玉大人罩扇,你說我怎么就攤上這事∨履ィ” “怎么了喂饥?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)肠鲫。 經(jīng)常有香客問我员帮,道長(zhǎng),這世上最難降的妖魔是什么导饲? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任捞高,我火速辦了婚禮,結(jié)果婚禮上渣锦,老公的妹妹穿的比我還像新娘硝岗。我一直安慰自己,他們只是感情好袋毙,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布型檀。 她就那樣靜靜地躺著,像睡著了一般听盖。 火紅的嫁衣襯著肌膚如雪胀溺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天媳溺,我揣著相機(jī)與錄音,去河邊找鬼碍讯。 笑死悬蔽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的捉兴。 我是一名探鬼主播蝎困,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼录语,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了禾乘?” 一聲冷哼從身側(cè)響起澎埠,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎始藕,沒想到半個(gè)月后蒲稳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡伍派,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年江耀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诉植。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡祥国,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出晾腔,到底是詐尸還是另有隱情舌稀,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布灼擂,位于F島的核電站壁查,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏缤至。R本人自食惡果不足惜潮罪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望领斥。 院中可真熱鬧嫉到,春花似錦、人聲如沸月洛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)嚼黔。三九已至细层,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間唬涧,已是汗流浹背疫赎。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碎节,地道東北人捧搞。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親胎撇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子介粘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容