New Ribbon
Canva+AI創意設計與品牌應用250招:從商業技巧、社群祕技到AI圖文影音特效 快快樂樂學威力導演2024.影音剪輯與AI精彩創作 文淵閣工作室祝福大家新年快樂.龍年吉祥 Power Automate自動化超效率工作術 Midjourney AI圖像魔導書:搭配ChatGPT魔法加倍 超人氣FB+IG+LINE社群經營與行銷力(第二版) 翻倍效率工作術:不會就太可惜的 Excel × ChatGPT 自動化應用 AppInventor2零基礎入門班中文版(第六版) Python零基礎入門班(第四版) C語言學習聖經 用Canva設計超快超質感:平面、網頁、電子書、簡報、影片製作與AI繪圖最速技 PHP8/MySQL網頁程式設計自學聖經 翻倍效率工作術 - 不會就太可惜的Power BI大數據視覺圖表設計與分析(第三版) 社群經營一定要會的影音剪輯與動畫製作術 Notion高效管理250招:筆記×資料庫×團隊協作,數位生活與工作最佳幫手 Office 2021高效實用範例必修16課(附500分鐘影音教學/範例檔) Excel自學聖經(第二版):從完整入門到職場活用的技巧與實例大全 網路開店×拍賣王:蝦皮來了(第二版) 專家都在用的Google最強實戰:表單、文件、試算、簡報、遠距與線上會議 超人氣 Instagram 視覺行銷力(第二版):小編不敗,經營 IG 品牌人氣王的 120 個秘技!

 

  Python大數據特訓班CH5

李小明

李小明
更新時間:2020/10/25 下午 09:06:45

 

我在學習ch05的youtube影片批次下載,安裝新模組pytube3沒有問題,但執行程式碼
videourlList = []
url = 'https://www.youtube.com/watch?v=hGRplpwjbr0&list=PL316wRwpvsnHZprsPfXM8yPzyZ41bvuWl'
html = requests.get(url)
res1 = re.findall(r'/watch[-A-Za-z0-9+&@#/%?=~_|!:,.;]+', html.text)
print(res1)
抓到的/watch都沒有index值,如下:
'/watch?v=hGRplpwjbr0&list=PL316wRwpvsnHZprsPfXM8yPzyZ41bvuWl'
應該後面會有&index=1
不知道哪邊出錯了感謝

文淵閣工作室

文淵閣工作室
更新時間:2020/10/27 下午 04:43:55

 

這是正確的。抓取YOUTUBE影片不需要 index 值即可下載。

杜欣

杜欣
更新時間:2021/6/9 下午 03:26:06

 

您好,想請問我在擷取所有影片連結網址的部分照著書本上的語法輸入

import requests
import re

videourlList = []

url = 'https://www.youtube.com/watch?v=hGRplpwjbr0&list=PL316wRwpvsnHZprsPfXM8yPzyZ41bvuWl'
html = requests.get(url)
res1 = re.findall(r'/watch[-A-Za-z0-9+&@#/%?=~_|!:,.;]',html.text)
for temurl in res1:
    if 'list=' and 'index=' in temurl:
        videourlList.append(temurl)
print(videourlList)

但是為什麼出來的結果是空集合 [] ?
謝謝

文淵閣工作室

文淵閣工作室
更新時間:2021/6/9 下午 07:52:30

 

因為 YOUTUBE 網頁已改變,原本方法已抓不到。
Python大數據特訓班已出第二版,內容有相當大更新。
請寄信到「service@e-happy.com.tw」,我們將把YOUTUBE新程式寄給您。

杜欣

杜欣
更新時間:2021/6/10 下午 03:49:59

 

您好!
我這邊已經有寄信過去了,再麻煩您將YouTube的新程式寄給我了。
真的很感謝!

杜欣

杜欣
更新時間:2021/6/13 下午 03:23:57

 

您好,想在提問一下,關於這段語法:

url = "https://www.youtube.com/watch?v=hGRplpwjbr0&list=PL316wRwpvsnHZprsPfXM8yPzyZ41bvuWl"
urlhead = url[:32]
urltail = url[43:]
if '&list' not in url:
    print('這不是播放清單')
else:
    res = requests.get(url)
    vlist = re.findall(r'watch\?v=(.*?)list', res.text)
    urls = []
    for v in vlist:
        if len(v) < 30:
            tem = urlhead + v[:11] + urltail
            if tem not in urls:
                urls.append(tem)

想請問中間的:
urlhead = url[:32]
urltail = url[43:]
是什麼意思?

以及這段:
r'watch\?v=(.*?)list'
是正規表達式嗎?

還有為什麼會需要以下這部分呢?
urls = []
    for v in vlist:
        if len(v) < 30:
            tem = urlhead + v[:11] + urltail
            if tem not in urls:
                urls.append(tem)

再麻煩您解答了,謝謝!

文淵閣工作室

文淵閣工作室
更新時間:2021/6/13 下午 09:42:06

 

以 url = "https://www.youtube.com/watch?v=hGRplpwjbr0&list=PL316wRwpvsnHZprsPfXM8yPzyZ41bvuWl" 為例:
urlhead = url[:32] 取前32個字元:https://www.youtube.com/watch?v=
urltail = url[43:] 第44個字元到最後:&list=PL316wRwpvsnHZprsPfXM8yPzyZ41bvuWl
r'watch\?v=(.*?)list' 是正規表達式,取得 watch\?v= 及 list 之間的字元
urlhead + v[:11] + urltail 以正規表達式取得字元的前11個字元組成網址
因網頁很複雜,正規表達式取得的字元非常多 (你可以print看看),所以做了許多過濾




 

 

Re:Python大數據特訓班CH5

請輸入姓名。

已超出字元數目的最大值。


請輸入電子郵件。

格式無效。


請輸入內容。