children, win, success

Gimy 劇迷影片網站使用Python爬蟲教學

Gimy 劇迷網上面有不少影片,不過每次查看都要進入網站且三不五時會跳出廣告,要如何直接用手機Line上邊移動邊查看影片呢???故嘗試使用Python 把想要看個劇情連結先行下載,再透過Line上面觀看。

  1. 範例一 : 每次都顯示廣告真的挺煩人
  2. 範例二 : 在Line上直接觀賞影片

解析網站架構

  1. 使用開發者工具,查看Video的內容會發現有個網頁資源 : blob:https://gimy.one/234afc8d-ae24-4780-b4c5-3d40896557c4

  1. 可惜此資源並非正確內容,至瀏覽器點開是無法查看的內容。
  2. 點開Video標籤會發現出現新的網頁資源 : index.m3u8 ,該檔案正是我們需要取得的資料 , m3u8 是一種串流檔案格式,並非儲存影片,詳情可以參閱維基百科說明 。

使用Python requests取網站html,並使用BeautifulSoup 解析

  1. 取得HTML,如下:
import requests
from bs4 import BeautifulSoup as bs

headers = {
    'authority': 'gimy.one',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36',
    'referer': 'https://gimy.one',
}

response = requests.get('https://gimy.one/v/200775191/10004000.html', headers=headers)
response.text

  1. 嘗試使用BS4 取得 video 標籤,會發現所下載的HTML並沒有包含video標籤。
#### 前面略
data = bs(response.text,'html.parser')
data.select('video')

重新解析網頁

  1. 查看發現該網站,發現此網站使用iframe嵌入影片,故爬該頁面會無法取得video標籤,然而我們需爬取該iframe內容。

  1. 抓取iframe html並透過bs4解析該網站標籤,就可以取得該 m3u8 內容了。
#### 前面略
response = requests.get('https://gimy.one/_p/222375', headers=headers)
data = bs(response.text,'html.parser')
data.select('video')

完整Python工具程式碼下載

GitHub 請點我~~

執行方式

1. 請使用python3以上版本
2. 執行前先使用 pip3 install -r requirements.txt --no-index ,安裝所需lib
3. 配置爬蟲組態檔
4. 執行 sh start.sh

Similar Posts

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。