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