摘要:需要的數據就是這個快遞軌跡,看到上面的好像沒什么問題,挺容易的,這還有什么比這爽的,趕緊使用請求一波。由于說過了,就不多說了,突破了繼續刷新也會遇到一些未定義的,也是同樣扣代碼,就不多說了,這里說另一個。
原本昨天就要發文章的了,由于之前的pdd文章被投訴了,刪除了,影響心情的同時也不敢亂發文章了,所以就暫時歇了一天,也改了另外一個網站,就是今天的物流網站。如果大家某天看不到我發文了,估計我也是被舉報完了,到時想要看的可以去我的GitHub上看。
獻上GitHub:https://github.com/SergioJune...
對你有用的話,希望能點個star,謝謝
今天網站:https://www.17track.net/zh-cn
這是個物流網站,就是查詢物流的,今天要做的就是根據單號查詢物流,廢話不多說,直接肝。
1. 找到所需數據的 URL 請求這里我們查詢一個單號,也可以批量查詢,參數都差不多,長度變了而已,所以演示就只查詢一個單號。
打開了開發者工具你慢慢找,很容易就找到這個請求。
需要的數據就是這個快遞軌跡,看到上面的 formdata 好像沒什么問題,挺容易的,這還有什么比這爽的,趕緊使用 python 請求一波。
結果返回了這個,果然沒有想象中的那么簡單,估計又是在cookie上面做了反爬,那我們就加上cookie試試
果不其然,真的成功了,經過我的測試,發現需要的cookie 鍵是??,那接下來就是看怎么生成的了。
2. 尋找生成位置上面知道了是哪個 cookie 反爬的,最簡單的尋找就是全局搜索這個參數來看看有沒有線索。
果然有,而且文件名字和請求的路徑名有幾分相似,按經驗來說八九不離十就是這個了,點擊進去看看。
格式化就可以看到上圖的代碼,一眼看去,這代碼很像我之前這篇請求網頁時,怎么給我返回了一段 JavaScript 代碼,都是前面一個大數組,然后在一個地方把這個數組的順序,然后通過一個函數來將這個數組的元素來解密成正常的函數名。接著就是檢測你有沒有展開代碼之類的,展開了就會內存爆破,具體的都可以看看我剛說的這篇文章。
有了上次的經驗,我就直接在瀏覽器上格式化直接調試了,不把代碼復制到本地運行了。
了解了這么多,就是開始調試了,由于我們需要找的 cookie確定是在這個文件內生成,但是還不知道在哪生成,所以需要調試下。
涉及到 cookie, 需要先把瀏覽器的cookie清除才行
點擊?clear site data?即可清除,不放心的就點多幾次。
接著就是在調試欄的右邊的 watch 添加我們監聽的變量,我們需要監聽 cookie 的變化,所以點擊 + 號添加 document.cookie 即可。
接著打斷點的位置就在我們搜索到 cookie 值的位置上添加即可
接下來就是刷新網頁,等待程序跳到斷點的位置
這時看到 cookie 的值是空的,在 application 上看的 cookie 也是空的
接著就是按下斷點執行下一行語句,不會的先自行百度,這個調試肯定得學會的,這里就不多說了,或者我過兩天有時間寫篇 chrome 調試供大家參考下。
現在就是漫長的調試尋找加密的時間了,經過我的查找,很快就可以看到這個了。
下面的那句明顯就是設置 cookie 的,可以自己復制語句到 console 上運行一次
這樣子就找到生成位置了,現在就是查看右邊的調用棧,查看是在哪個地方開始執行的,看看他們之間的調用關系。
3. 把生成的參數代碼扣出來在上面的cookie 生成可以看到是一個數組,然后使用 join() 來連接起來的
我們可以觀察這個數組在哪里生成和賦值的,也通過調用棧可以看到參數生成地方是在這里
我們可以先把這個語句所在的函數扣出來
發現里面的函數有些 document 對象,又因為這個是主函數,所以可以修剪下,把那些判斷語句和捕捉異常的都給去掉,就是在原文件中看判斷語句的真假運行的哪個語句就保留,而正常運行不會產生異常,所以把處理異常的也給去掉,就成了這個樣子。
然后直接使用瀏覽器打開運行查看錯誤
然后對比原文件中的參數 ,發現這個是我們傳的 formdata,所以為了測試先賦值一個即可。
接著是這個錯誤,這個未定義,也是在原文件中看他的定義處即可。可以這樣看
點擊上面箭頭所指的地方即可到達定義。
直接到達這里,看到了他的定義,所以直接從這里扣出來到最后定義完之處即可,再次刷新,看到變成了另一個錯誤
也是在原文件中找定義即可
這是個解密函數,就是我上文說的將加密數組元素解密成正常的函數名,直接扣出來即可,同時我們還需要找個數組,就是第一行的。
再次刷新,瀏覽器卡了起來,甚至出現了崩潰
這就是所謂的內存爆破,這時因為里面有個函數檢測到了你展開了代碼,所以就來內存爆破,這個都是我在請求網頁時,怎么給我返回了一段 JavaScript 代碼這里得到經驗的,如果你需要調試尋找的話,可以先在我們扣出來的代碼隨便寫個錯誤,在文件代碼出現,然后在第一行加上斷點進行調試即可,剩下的就是自己一步一步調試找出內存爆破位置了。
由于說過了,就不多說了,突破了繼續刷新也會遇到一些未定義的,也是同樣扣代碼,就不多說了,這里說另一個。
這里明明已經是定義了,卻顯示未定義,打了斷點一看,原來是函數名字都是亂碼的
這是因為我們在第一行定義的數組是亂序的,需要還原下,這個需要自己一步一步調試查看原文的,我這里就直接說了
里面可以打上斷點查看即可。
剩下的還是重復原來的步驟,查看錯誤,扣代碼即可,由于篇幅這里就不多說了,有問題可以去公眾號「日常學python」菜單欄加我微信拉進交流群交流。
4. 用 Python 運行獲取結果這里還是使用 PyExecjs 庫來執行 JS 獲取cookie值,如果還原成python 語言成本太大了,不適合。
代碼也沒有什么的,具體的可以去 github:https://github.com/SergioJune...?上面看
最后這篇文章昨天就想發了,無耐太累,就一直拖到今天了,有點對不起讀者,還有 pdd 的已經被刪除了,想看的可以去 github 上看。
最后,原創不易,希望大家多點贊多轉發分享給你的好友,點贊轉發越多,我就寫得越多!!!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43519.html
摘要:做過跨境電商項目的同學都知道,除了訂單,支付和購物車外還有一個很頭痛的模塊物流軌跡追蹤。 做過跨境電商項目的同學都知道,除了訂單,支付和購物車外還有一個很頭痛的模塊-物流軌跡追蹤。 通常來說企業為了節省成本采用的物流渠道都是五花八門的,DHl、EMS、Epacket、USPS...聽起來就讓人頭疼;誰讓咱們是做技術的呢,為了解決各家接口數據格式不一致的問題,特地花了一段時間做了一個co...
摘要:由此看出,云計算市場的競爭格局還未完全確定。尤其在現階段,企業級業務進入需求爆發期,能快速抓住企業上云核心需求的大型云計算廠商更有可能快速搶占市場份額,實現彎道超車。近年來,在企業數字化轉型的熱潮下,我國云計算發展正式迎來需求爆發期。隨著云計算的應用普及,越來越多的企業開始擁抱云計算服務,云計算或將于2019年全面殺入企業級市場。中國云計算市場規模和集中度增加,但市場競爭格局仍未確定據億歐智...
摘要:基本概念云物流概述云物流是基于云計算應用模式的物流。運輸條件的改善基于云計算的云物流通過物流平臺的構建在資源池內實現信息的共享,同時能高效地找到匹配的訂單,進而根據訂單來配送。0 引言國家標準《物流術語》指出:物流是物品的實體流動過程,物品從供應地到接受地的過程中包含著眾多的環節,如對物品進行包裝、流通加工、配送,對物流信息進行處理,進而對實體進行儲存、搬運、運輸、裝卸等,直至送到消費者手中...
摘要:能否保證原箱發貨為防止運輸途中的癟罐,在倉庫打包的過程中,會拆掉原箱對奶粉罐挨個進行減震包裝。稍后會有客服人員聯系客戶協商處理破損產品。 小紅馬常見問題 平臺介紹 什么是小紅馬? 小紅馬是一個擁有優質的供應鏈、IT、資金等核心資源,基于對中國母嬰行業的深刻洞察,全新構建的母嬰用品全品類一站式采購平臺。 小紅馬對門店具備哪些優勢? *小紅馬平臺貨源來自廠家直供與國代商渠道,不同于其他平臺...
閱讀 1572·2021-10-14 09:42
閱讀 3815·2021-09-07 09:59
閱讀 1292·2019-08-30 15:55
閱讀 572·2019-08-30 11:17
閱讀 3337·2019-08-29 16:06
閱讀 500·2019-08-29 14:06
閱讀 3123·2019-08-28 18:14
閱讀 3642·2019-08-26 13:55