Soft_Job 板


LINE

手機打字不想打太多 一般瀏覽器打開頁面可以分成幾個步驟: 1. 請求 HTML 2. 解析 HTML 並下載 assets (img, css, js) 3. 執行 js 4. 渲染 DOM 之後就是一直 3 4 按需執行,有動態內容可能還會有 2 當然,實際上的渲染執行步驟比這複雜的多 Selenium 等爬蟲最早是透過訂製的 Chromium 在不同階段 存取頁面中的 DOM,本質上還是一個瀏覽器在讀取-解析-執行 後來有穩定 API 與 headless 模式以後,Chrome/Chromium/ Firefox 等等主流瀏覽器幾乎都能被直接驅動 扯遠了,你說得 requests 應該是指 Python 的 Requests 函式庫?那它只有執行上面提到的 1,什麼東西都拿不到 是正常的。現代網頁開發已走向 SPA/前後端分離,你打開 網頁只有給你一個骨架與 js 去執行動態內容,所以你必須 執行上面說的 234 才能得到最終使用者看到的內容。 一般來說寫爬蟲要快都是去拆 API 來看,不是很複雜的 內容就是自己模擬請求直戳 API,在沒有公開 API 文件的 情況下就有如逆向工程般麻煩。你必須知道他的 session 登入端點在哪,用 cookie session 還是 JWT 還是自行開發, 之後所有請求都要帶登入驗證 token。然後你還要知道戳 哪支 API 才會取得你要的內容,看是 JSON 還是 XML 還是其他奇奇怪怪格式,解析完才能用取得的資料。 次一級是用輕量級的 browser emulator 去模擬瀏覽器產生 DOM,再去爬模擬的 DOM 內容。因為原生語言優勢, 這種通常都是直接寫 Node.js 配 jsdom 去執行。 這邊必須要注意瀏覽器內的 js 是在沙箱內執行的,可以用 的 API 很少,但用 nodejs 執行外部來源的 js 就要注意 RCE 等安全問題。 最後就是 Selenium 這種用真正的瀏覽器跑頁面渲染, 相容性最好也安全,任意的 js 程式碼被瀏覽器包裝在 瀏覽器內部,不至於輕易爆破主機,只是速度也最慢。 再來就是看它會不會彈出一個瀏覽器視窗,如果會的話 代表你沒有開 headless mode,有開速度也會快不少... 註:先聲明我不會寫 python,沒用過 Selenium, 一路走來用過 PhantomJS、cheerio、puppeteer 直到現在的 jsdom --
QR Code



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.9.185.214 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1674631737.A.F1D.html
1F:推 neo5277: 還是很多 01/25 15:50
2F:推 Belieeve: 推推 01/25 15:55
3F:推 WrongHole: 01/25 16:58
4F:推 lchcoding: 同意一樓;還在過年;推有心 01/25 17:57
5F:推 walker088: 推一個 go-rod + goquery 可以看看, 比Python Selenium 01/25 18:14
6F:→ walker088: 快得多 01/25 18:14
7F:推 Gismudis: 還是打很多 讚讚 01/25 18:24
8F:推 lance70176: 認真推 最近也在看點你說的方式 01/25 19:24
9F:推 holebro: Python+selenium最好寫 開心 01/25 22:01
10F:→ superpandal: 很常識 建議還是自己刻輪子以符合需求 01/25 22:49
11F:→ superpandal: 我的話直接用瀏覽器 01/25 22:53
12F:推 viper9709: 推分享 01/25 23:47
13F:推 kyotouma: 用心推 01/26 00:24
14F:推 vi000246: 我都是抓html用正規表達式硬幹 現在有dom parser的lib 01/26 00:26
15F:→ vi000246: 方便多了 01/26 00:26
16F:推 andrew771027: 推 01/26 00:53
17F:推 kurtsgm: 如果回的是明文的json的話倒還是好處理 從瀏覽器console 01/26 03:21
18F:→ kurtsgm: 都還是看得出個端倪 之前遇過某些網站回來居然是打亂的 01/26 03:21
19F:→ kurtsgm: 猜不出怎麼解密的情況下實在不敢再投入時間下去try 01/26 03:22
20F:→ s25g5d4: 遊戲業很愛用 AES 加密,再來有些會用 msgpack 或 protob 01/26 03:24
21F:→ s25g5d4: uf 讓你猜不到 encoding,猜到了也拿不到 key 01/26 03:24
22F:→ MoonCode: 為什麼會拿不到 key 阿 @@? 01/26 03:27
23F:→ s25g5d4: protobuf 只有序列號沒有 key name,要解欄位還要先拿到 01/26 03:42
24F:→ s25g5d4: proto 檔 01/26 03:42
25F:→ s25g5d4: 當然你也可以 argue 前端沒有甚麼真的加密,不管 AES 解 01/26 03:43
26F:→ s25g5d4: 密的金鑰還是 proto 定義都有辦法撈出來,只是做個爬蟲有 01/26 03:43
27F:→ s25g5d4: 沒有必要逆向工程到這麼深就是了... XD 01/26 03:44
28F:推 vi000246: return 亂碼是滿常見的反爬蟲 在前端加解密只是多了一 01/26 09:54
29F:→ vi000246: 些步驟 現在有能在後端執行js的lib ,這類反爬蟲也比較 01/26 09:54
30F:→ vi000246: 好解了 01/26 09:54
31F:→ vi000246: 以前要一行一行執行js的code看亂碼是怎麼還原的 然後在 01/26 09:56
32F:→ vi000246: 後端寫出一樣的演算法 01/26 09:56
33F:推 shibin: 推 01/26 18:01
34F:推 syyu641: 推用心 01/26 18:05
35F:推 CRPKT: jsdom 建議不要,行為比真 DOM 差太遠,速度快不了多少 01/26 19:14
36F:推 v86861062: 推推 01/26 21:45
37F:→ MoonCode: 回 s25g5d4 js 的逆向沒有倒多複雜吧 01/26 21:53
38F:→ s25g5d4: 沒有很難跟要不要花時間拆下去是兩回事阿 01/26 23:47
39F:推 timofEE: 推好心 01/27 00:04
40F:推 shter: 懷念PhantomJS,現在用 Node.js + puppeteer 01/27 13:49
41F:→ shter: 說實話 Node.js 去操作 DOM 對前端工程師還是最直覺 01/27 13:50
42F:→ shter: 不管是用來爬蟲還是做自動化測試 01/27 13:51
43F:→ s25g5d4: 以前在圖書館打工寫過 phantomjs + firefox~ 雖然我本來 01/27 14:08
44F:→ s25g5d4: 就是 fx 使用者,但當時會用 fx 還是因為圖書館電腦還在 01/27 14:08
45F:→ s25g5d4: winXP 沒辦法裝 Chrome XDD 01/27 14:08
46F:推 a82611141: 推 01/29 14:12







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP