Re: [問題] 在學習程式語言,如何做到有效率的學習
講一下我寫爬蟲的思路好了
第一步是分析網頁 用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
推
01/03 01:18,
7年前
, 1F
01/03 01:18, 1F
推
01/03 07:35,
7年前
, 2F
01/03 07:35, 2F
推
01/03 21:22,
7年前
, 3F
01/03 21:22, 3F
→
01/03 21:23,
7年前
, 4F
01/03 21:23, 4F
→
01/03 21:23,
7年前
, 5F
01/03 21:23, 5F
→
01/03 21:24,
7年前
, 6F
01/03 21:24, 6F
→
01/03 21:35,
7年前
, 7F
01/03 21:35, 7F
→
01/03 21:36,
7年前
, 8F
01/03 21:36, 8F
→
01/03 21:36,
7年前
, 9F
01/03 21:36, 9F
推
01/03 21:54,
7年前
, 10F
01/03 21:54, 10F
→
01/03 23:07,
7年前
, 11F
01/03 23:07, 11F
→
01/03 23:08,
7年前
, 12F
01/03 23:08, 12F
→
01/03 23:08,
7年前
, 13F
01/03 23:08, 13F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 5 篇):