作者Hsins (迅雷不及掩耳盜鈴)
看板Python
標題Re: [問題] python 爬蟲得到加密的資料
時間Fri Nov 4 16:37:31 2022
※ 引述《a199111222 (oyeh)》之銘言:
: 先附上想爬的網頁
: https://marketchameleon.com/Overview/AAPL/Similar/
: 想要爬取表格的全部資料
: 以前用post 抓下來的格式是json
: 現在是一串亂碼
: 請問這樣還有辦法爬嗎?
要爬是能爬,但就看你要花多少時間跟成
本去處理他而已。
: 我用selenium去開這個網址,連表格內資料也不顯示......
: 有大大能提供解決的方向嗎?謝謝
透過開發者工具可以發現,這些資料是打
POST 請求到對方的 IIS 伺服器拿到編碼
過後的資料,這個我想你應該已經取得。
如果你嘗試去檢查他拿到這份資料在幹嘛
,會發現這個 AJAX 操作在成功取得資料
後會呼叫以下這個函數:
https://i.imgur.com/04uNmaA.png
----
順著這個函數找:
https://i.imgur.com/wms242A.png
https://i.imgur.com/dfz4jJh.png
在進行解析之前,他會檢查兩件事來判斷
你今天是爬蟲程式還是真人:
(1) user_agent 是不是特殊的
(2) 有沒有人為操作的事件被記錄下來
其中 (2) 的判斷方式是在頁面上有沒有
滑鼠移動操作(mousemove)
----
最後才是解碼並且將資料放入表格中:
https://i.imgur.com/2Z5fcs8.png
----
處理方式很多:
(1) 去把他的函數搞出來,自己執行
(2) 模擬一下人為操作,讓瀏覽器操作完
DOM 渲染完之後再去爬渲染好的內容
如果我是你,我會選擇 (2) 這種方式,
反正你都已經用了 Selenium 去處理了,
省時省力。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.138.237.231 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1667551053.A.264.html
1F:→ Hsins: 不過看起來 xcr_json_inner() 就能解碼成原來的 JSON 了11/04 16:57
2F:推 lycantrope: 佛心來著w11/04 17:08
3F:→ surimodo: 1也不是不行 但研究要解碼那串11/04 17:49
4F:→ surimodo: 真的太麻煩了 他包了好幾層很難解11/04 17:49
5F:→ surimodo: 最後實際解好像是 enc_dcr_xor 這個函式11/04 17:51
包含 windows 物件裡面會帶屬性
例如 webdriver 還有檢測有沒有人為操作
像是我上面文章提到的
檢測有沒有 mousemove
一些大廠還會紀錄過往的操作
是不是太過固定
還有附近 IP 的行為來判斷
7F:推 cuteSquirrel: 專業推11/04 18:04
8F:→ Hsins: 大概是連文都懶得看ㄅ11/04 18:29
※ 編輯: Hsins (223.138.237.231 臺灣), 11/04/2022 18:52:53
9F:推 cloki: 專業推 11/04 19:42
10F:推 yiche: 哈哈哈哈哈 還幫trace 太好心啦 11/04 19:54
11F:推 cuteSquirrel: 樓主今天超佛 11/04 20:17
12F:推 smartree: 感謝 11/05 00:44
13F:推 chang1248w: 推 11/05 02:22
14F:推 TakiDog: 哈哈 佛心給推 11/05 06:53
15F:推 a199111222: 謝謝版主專業的回覆,讓我有方向,雖然我還沒成功... 11/05 09:44
16F:推 a199111222: 對新手來說有點太難,需要一點時間消化,再次感謝 11/05 10:04
17F:推 a199111222: 隱藏selenium的webdriver就成功了,感謝版主 11/05 10:52
18F:推 aidansky0989: 爬蟲就是要動點腦破解 11/05 17:30
19F:推 KINGWAP: 完全看嘸 只能無腦推 11/05 23:38
20F:推 cmsisgod: 版上一堆高手@@ 11/06 07:24
21F:→ hackmoney: 佛心 推一個 11/08 14:28