看板 Python 關於我們 聯絡資訊
講一下我寫爬蟲的思路好了 第一步是分析網頁 用chrome的F12 有個NetWork頁籤 手動執行網頁 看送出去的表頭長怎樣 Response是什麼 我推薦用fiddler這軟體取代F12 它有個composer功能 把你發送的request複製下來貼到這裡 能直接發送同樣的request 你可以用這個功能研究是哪個header會影響response 做完第一步 你可以把整個流程寫下來 列出每個request 登入->進到影片列表->取得影片連結->換頁 p.s. 如果登入有驗證碼的話 這網站你可以先跳過了 這該死的圖要學很多東西才繞得過去 通常會在取得影片連結這邊卡住 這邊就只能看經驗了 有的直接抓mp4的連結 有的要用一連串的request才能取得真實連結 有的用swf的player撥放 還要反組譯swf看他怎麼request的 這是我用來抓vimeo影片的程式碼 vimeo把影片連結藏在iframe裡 https://goo.gl/VSVjFb 第二步是清理數據 成功取得html後 就要想辨法拿到目標資料 我以前是用正規表達式硬幹 但現在有很多方便的東西 像beautifulsoup 或是lxml 像這裡第77行開始 就是用xpath抓的 https://goo.gl/G52XKH 取到影片連結後就簡單了 取個不重覆的檔名存到硬碟就好 列一下你會用到的關鍵字 html、javascript(選配 有些網站會用js防爬蟲 需要分析js程式碼)、 正規表達式、xpath(這東東是類似jquery選擇器的東西) python的requests、beautifulsoup函式庫 當然你也可以直接學selenium 就不需要上面繁瑣的分析request流程了 但是想要爬難一點的網站 基本功還是很重要的 selenium把一些很難克服的反爬蟲機制 ex. csrf token、用Ajax寫的單頁式網站 cookie等等 很簡單就繞過了 當然想速成的話用selenium是最快的 你可以參考一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.204.135.153 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1514910816.A.267.html
Yshuan: 推這篇 如果練習目標知名的話 github可以對解答 01/03 01:18
f496328mm: 推selenium,可以說是萬解,不過缺點是速度比較慢 01/03 07:35
jamesxxx1997: 臏瞻j大的教學,我是用selenium來寫抓影片的code 01/03 21:22
jamesxxx1997: 因為網站有不少javascriptQQ,不過原本想用selenium 01/03 21:23
jamesxxx1997: 加上request,因為單獨selenium要有點擊下載的按鈕 01/03 21:23
jamesxxx1997: 然後就卡住了...,我會再重新把我的問題縮小、梳理 01/03 21:24
vi000246: 你要找出影片的實體路徑 影片撥放跟下載影片的原理是一 01/03 21:35
vi000246: 樣的 網站會對影片的路徑發送request 回傳串流 差別是 01/03 21:36
vi000246: 撥放器會解讀串流 播放影片 下載下來的串流就是影片檔案 01/03 21:36
jamesxxx1997: n的,我再以"播放器 python"為關鍵字找一下教學~ 01/03 21:54
vi000246: 你可以先找一下其他影片下載器的爬蟲 看別人是怎麼下載 01/03 23:07
vi000246: 的 這跟播放器關係不大 可以先拿youtube download 01/03 23:08
vi000246: 當關鍵字 01/03 23:08