爬蟲,關於 video 標籤 src 帶有blob:http的 一些想法
阿新 • • 發佈:2018-12-09
大家好,我是烤鴨:
之前玩爬蟲的時候,看到過video標籤中src屬性引入的blob:http:xxxx,當時沒找到解決思路,今天又遇到類似問題,就試著找了一下。
1. 分析
看video標籤中的src屬性,發現 src="blob:https://open.gaodun.com/b9d3366f-87ef-4328-9d97-31110de519a1"
複製這個地址去瀏覽器什麼也找不到。
2. 找真實地址
不管上面的問題。先去看一下視訊到底從哪來的。以谷歌瀏覽器為例,選擇XHR,發現載入了m3u8檔案。
m3u8是一種視訊格式,看response中返回的.ts檔案,直接複製ts檔案的路徑開啟,就是視訊片段。
3. 找關聯
當我對著原始碼和請求的response對照的時候,發現播放器周圍的html標籤都是後生成的,找到了一個比較“可疑”的js檔案。
發現播放器程式碼附近的:
<div class="playDiv" id="divid"> <script type="text/javascript" src="https://s.gaodun.com/web/static-player/loader.js?13p9Wv580v1a!!fs-3"></script> </div>
看了js的原始碼,再跟了下debug。
找到了這個網頁請求的m3u8地址是這個:https://vod.gaodun.com/13p9Wv580v1a!!fs/SD/1.m3u8。
直接瀏覽器訪問就可以獲取,就可以獲取ts檔案。ts檔案就是一段段的視訊,可以下載下來之後拼接成一個完整的檔案。
4. 總結
至此,關於video 標籤 src 帶有blob:http的 抓取的就寫完了。但是每個網站的情況都不一樣。
這裡只是提供一種思路,比如剛開始寫的 https://vimeo.com/ 這個網站就不是js,而是json裡邊包含的視訊地址。
歡迎有想法的朋友多交流。