<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          手把手教你使用Python網(wǎng)絡(luò)爬蟲獲取亞馬遜商品頁面的m3u8格式視頻

          共 2859字,需瀏覽 6分鐘

           ·

          2022-04-13 08:58

          點(diǎn)擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注

          回復(fù)“書籍”即可獲贈(zèng)Python從入門到進(jìn)階共10本電子書

          孤燈寒照雨,深竹暗浮煙。

          大家好,我是Python進(jìn)階者。

          一、前言

          前幾天在Python最強(qiáng)王者交流群有個(gè)叫【頑皮Dolly】的粉絲問了一個(gè)Python網(wǎng)絡(luò)爬蟲的問題,抓取亞馬遜商品視頻,這里拿出來給大家分享下,一起學(xué)習(xí)下。

          二、解決過程

          這里【皮皮】給出了解答,一起來看看吧。

          使用瀏覽器抓包發(fā)現(xiàn),這個(gè)視頻是m3u8格式的。m3u8是蘋果公司推出的視頻播放標(biāo)準(zhǔn),是m3u的一種,只是編碼格式采用的是UTF-8

          找到Url,就可以處理了。

          其實(shí)關(guān)于m3u8格式的視頻下載,網(wǎng)上已經(jīng)有很多教程了,也有人做出了小工具,可以直接拿過來用,也是非常卷了!這里使用【吳老板】寫的小教程來演示。

          【吳老板】的小教程鏈接:https://github.com/PY-GZKY/python-automation-docs/blob/master/docs/%E7%88%AC%E8%99%AB/m3u8%E9%9F%B3%E8%A7%86%E9%A2%91%E6%8B%BC%E6%8E%A5.md

          里邊的代碼可以直接拿過來用,核心代碼如下:

          import?datetime
          import?time
          import?os
          import?requests


          #?m3u8是本地的文件路徑
          def?get_ts_urls(m3u8_path):
          ????urls?=?[]
          ????with?open(m3u8_path,?"r")?as?file:
          ????????lines?=?file.readlines()
          ????????for?line?in?lines:
          ????????????if?line.endswith(".ts\n"):
          ????????????????print(line)
          ????????????????urls.append("https://m.media-amazon.com/images/S/vse-vms-transcoding-artifact-us-east-1-prod/084028a2-9a64-485f-a55b-676577059927/"+line.strip("\n"))
          ????return?urls


          def?download(ts_urls,?download_path):
          ????for?i?in?range(len(ts_urls)):
          ????????ts_url?=?ts_urls[i]
          ????????file_name?=?ts_url.split("/")[-1]
          ????????print("開始下載?%s"?%?file_name)
          ????????try:
          ????????????response?=?requests.get(ts_url,?stream=True,?verify=False)
          ????????except?Exception?as?e:
          ????????????print("異常請求:%s"?%?e.args)
          ????????????return

          ????????ts_path?=?download_path?+?"/{0}.ts".format(i)
          ????????with?open(ts_path,?"wb+")?as?file:
          ????????????for?chunk?in?response.iter_content(chunk_size=1024):
          ????????????????if?chunk:
          ????????????????????file.write(chunk)
          ????????time.sleep(.56)


          def?file_walker(path):
          ????file_list?=?os.listdir(path)
          ????#?file_list.sort()
          ????file_list.sort(key=lambda?x:?int(x[:-3]))
          ????file_list_?=?[]
          ????for?fn?in?file_list:
          ????????#?print(fn)
          ????????p?=?str("tsfiles"?+?'/'?+?fn)
          ????????file_list_.append(p)

          ????print(file_list_)
          ????return?file_list_


          def?combine(ts_path,?file_name):
          ????file_list?=?file_walker(ts_path)
          ????file_path?=?file_name?+?'.MP4'
          ????with?open(file_path,?'wb+')?as?fw:
          ????????for?i?in?range(len(file_list)):
          ????????????fw.write(open(file_list[i],?'rb').read())


          if?__name__?==?'__main__':
          ????urls?=?get_ts_urls("./data.txt")
          ????download(urls,?"tsfiles")
          ????combine("tsfiles",?"大理")

          這個(gè)是依次下載的ts文件,都是一個(gè)個(gè)幾秒的小文件。

          之后使用【吳老板】小教程上的合并combine()函數(shù)對這些ts文件進(jìn)行合并,得到一個(gè)mp4文件,如下圖所示。

          后來【孤獨(dú)】大佬提出還可以使用ffmpeg庫進(jìn)行下載,使用命令:ffmpeg -allowed_extensions ALL -i m3u8鏈接 -c copy 輸出視頻,感興趣的小伙伴們也可以試試看,方法還是很多的。

          三、總結(jié)

          大家好,我是Python進(jìn)階者。這篇文章主要分享了Python下載m3u8格式視頻的問題,針對該問題給出了具體的解析和代碼演示,幫助粉絲順利解決了問題。

          最后感謝粉絲【頑皮Dolly】提問,感謝【皮皮】、【吳老板】、【孤獨(dú)】給出的具體解析和代碼演示,感謝【dcpeng】、【馮誠】、【冷喵】、【阿策~】、【瑜亮老師】等人參與學(xué)習(xí)交流。

          小伙伴們,快快用實(shí)踐一下吧!如果在學(xué)習(xí)過程中,有遇到任何Python問題,歡迎加我好友,我拉你進(jìn)Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。

          -------------------?End?-------------------

          往期精彩文章推薦:

          歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入Python學(xué)習(xí)群請?jiān)诤笈_回復(fù)【

          萬水千山總是情,點(diǎn)個(gè)【在看】行不行

          瀏覽 60
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲 变态 欧美 另类 精品 | 色婷婷国产 | 国产一区二区免费看 | 日韩AAAAAA | 天天好逼夜夜爽 |