你好呀,我是歪歪。
週末的時候吃了一個瓜,真的是太好吃了。
雖然 2022 年都還沒過半,但是我個人已經把這個瓜評選為年度前三了。很久沒有吃過這麼有質量,又讓我酣暢淋漓的瓜了。
事情這樣的,我在知乎上刷到了這樣的問題:
![](https://i.iter01.com/images/9a08cb3355c2a6fc6406598d8c407a6a2e505b38ed1a6928f0ecdf320e272d0e.png)
按理來說,我是一個數學渣的,這種關於數學的問題我一般都不是很感興趣。我甚至都不記得我高考的時候數學考了多少分了。
但是,我還是鬼使神差的點了進去。
沒想到,這一點進去,我就陷進去了。
題目大概是說 B 站上有個 up 主說自己高考數學的時候差不多 35 分鐘就把題做完了,最後考了 149 分。
這個 up 主其實挺好的,我還專門去看了一下他之前的視訊,他今年一月份發的視訊裡面說自己是在美國攻讀博士學位,學的是純數學專業。
![](https://i.iter01.com/images/b92367db86a737e3f169c7480125f316200c29709978354fd3d9a1bbcdf6c3ec.png)
然後他的高考數學分數沒有問題,因為他後面曬了自己的成績單,但是由於沒有可以佐證的證據, 35 分鐘這個時間特別有爭議了。
大家圍繞著這個時間就開始吵起來了。
一撥人說應該問題不大,一撥人說絕無可能。
於是就出現了下面這樣的一個回答,我先給你全文截個圖:
https://www.zhihu.com/question/522084520/answer/2394053852
![](https://i.iter01.com/images/8b843d828b0ddc5f39cd3514da66591cd3ec1ca4763aca4d223cd3bf3d565560.png)
總體意思就是有個不願意透露姓名的、參加過數學奧林匹克大賽的數學大佬,他說他覺得沒有人可以在 35 分鐘之內高考數學拿到 149 分。
他還立下了獎金 100w 的戰書:
在 2022 年 6 月 7 日中午 12 點集合,等當天試卷出來之後全網直播,40 分鐘之內 145 分以上即可,參賽費 1 萬,挑戰成功獎金 100 萬。
他也知道知乎上能人輩出,所以特別歡迎大家來打他的臉。希望大家幫他擴散這個訊息,讓更多的人看到,如果能湊夠十個人就開搞。
此訊息一處,各路吃瓜豪傑聞風趕到。我給你看看這個回答的資料:
![](https://i.iter01.com/images/4587c1ea6e2f2cbf8317e573f3d6d68a895de1469d61a67da2539d2cc510817b.png)
3.3w 人點贊,6805 條評論,5736 人追更,1.7w 人收藏,很恐怖的資料了。
因為答主最後一次更新在 3 月 20 號。至今已經過去了 2 個多月了,我當然第一時間是想知道截止現在有多少人報名了。
所以我想在評論區裡面找到答主關於這方面問題的回覆。
但是 6800 多條評論,這麼多評論直接影響到我吃瓜的速度了。知乎網頁版上分頁就分了 121 頁,而且裡面還夾雜著特別多的“檢視回復”:
![](https://i.iter01.com/images/d136c90510da32a7a155f8674c9fa38218b1768fb0e6d022ad34438cfd62e6a5.png)
“檢視回復”,就是下面這種樓中樓的情況:
![](https://i.iter01.com/images/d58f8e2901f3e9fe945b4138c24a8ce467be46cee4fe799a6cc5dfb4e75b3779.png)
我翻了幾頁,我就發現事情不對,這瓜雖然好吃,但是一頁頁的翻的話,吃起來也太費勁了。
你知道,我是程式設計師嘛。
所以...
![](https://i.iter01.com/images/8bb9b1d4192b305451af4d5f87e93c5ba971c1a71693b1d9940a05be4d684f9f.png)
扒評論
知乎的評論我看了一下,特別的好扒,結構也不算複雜。
從開發者工具中看到的介面和響應是這樣的:
![](https://i.iter01.com/images/dcad53b10be783b8885c2177934a126f218bd71837adb7d9177490411bc4156f.png)
你看它的這個介面,裡面有個 limit=20&offset=0,猜也能猜出來,limit=20 的意思是一頁顯示 20 條,然後 offset=0 說明它是基於偏移量來做的分頁。
然後返回的資料中有一個 paging 的屬性。
很重要,所以我把這個屬性單獨拿出來說:
![](https://i.iter01.com/images/755528a01dd07630f3ee52c74b255efaa604a91af7195bfade35b2f7d45e087e.png)
前兩個屬性不多說了,分別用來標識當前是否第一頁和最後一頁。
接著有個 next 和 previous,表示上一頁和下一頁。你注意看這兩個屬性唯一的差別就在 offset 上,一個是 0,一個是 20,也就是說一頁顯示 20 個。
totals 代表有 2417 條資料。一頁 20 個,所以一共 121 頁。
那麼問題就來了,明明前面說了 6805 條評論,這裡怎麼只有 2417 條呢?
這個差距也太大了吧?
是的,我開始也有這個疑問,於是我隨便找了一個"檢視回復"點了一下:
![](https://i.iter01.com/images/0e48dc83f2ee72d2cd335e54ec097e81e36dd9e2fd851c8e1a29e7e87aff565b.png)
在開發者工具裡面看到了這樣的請求和響應:
![](https://i.iter01.com/images/6f1c63ce93dee4e55369e16389fd39ef52ab46981f03d299591408ea5ba6099b.png)
看到介面名稱的時候,我一瞬間都懂了。
前面的 2417 條,是 root_comments。每個 root_comments 下面會掛很多 child_comments。
拿個實際的資料來說,就是這個意思:
![](https://i.iter01.com/images/d2b08cfa834ab342ff1440386dc9b96270d258f5f29a151bfb679a94c0ec082c.png)
所以我的策略是先把 root_comments 都拿下來。
我想要拿到的資料應該是誰評論了什麼內容,這個內容有多少人點贊,對應的資料是這樣的:
![](https://i.iter01.com/images/07859026d3e48e265bcf2750484ad0691f398b8523172782488784bd6767762d.png)
所以這個程式寫起來很簡單,就這麼幾行程式碼:
![](https://i.iter01.com/images/6146df7d83cca5703979e5c5deb5275c75aee7da46e869f37a1201714c2093c9.png)
從輸出的結果來看,是沒有毛病的:
![](https://i.iter01.com/images/855ab06bd8c4bb05162dcd1b4e4c0fbd2a2f6396be23e63d6ea5c99306f49bc6.png)
但是我發現一個神奇的事情是這樣的:
當我獲取到 offset=420 的時候,只給我返回了兩條資料再然後就全是空了:
一直到 offset=2420 ,也就是最後一頁,都是空的:
![](https://i.iter01.com/images/7e9426f97db4ad695993cef78abb7ffcf29dde351ce131795229ffbaa98e4155.png)
我不理解,但是我也找不到為什麼,猜測應該是觸發到了他們的某個限制策略了吧。
我前面不是說了知乎是根據偏移量分頁的嘛,很有可能的一個邏輯就是當 offset 大於某個值的時候,系統認為這個值不合理,覺得你有可能是在刷資料,那麼我就不給你資料了。
我想找找其他的帖子來論證我的觀點,但是一時間竟然沒有找到一個回答下面有超過 5000 個評論的帖子,所以這條路沒有走通。但是也側面證明了,這確實是一個神貼,在整個知乎都屬於少部分的情況,出點奇奇怪怪的異常也是很正常的嘛。
![](https://i.iter01.com/images/6a089aa6cd2ef9a3bcbffbb137b321baef44a7303a85d95b2ef527581abdc148.png)
但是我發現了另外一個問題,其他評論不多的帖子,比如我之前寫的一篇關於成都的,只有 722 個評論。
當我點選評論的時候是這樣的:
![](https://i.iter01.com/images/3487b1263dc574a65373c140c8bb68450ef2b7bacfd4a9bd1eb078167e106cb2.gif)
彈窗加上下拉瀑布流的形式進行的展示,和手機上的展示類似。根本就看不到什麼分頁資訊,這才是偏移量分頁的正確開啟方式。
因為可以帶著上一次返回的資料的最大 id 去做 limit 查詢,這也是大資料量的情況下,一個非常好的分頁手段。
具體好處就不展開了,老八股文了,說多了沒意思。這是隻是一個應用場景而已。
回到我們的神貼中,前面我說了它下面是有分頁的,但是通過介面訪問到 offset=440 的時候,只展示了兩條資料之後,就沒有資料了。
也就是說介面最多隻返回 442 條 root_comments 型別的資料。442,一頁 20 條,一共 23 頁。
所以我只需要在評論頁上點選到 23 頁,就能證明我的觀點。
首先我直接點選最後一頁的時候,是一片空白,和我們程式表現一致:
![](https://i.iter01.com/images/83df93bfea00ad29ca979eeeb1d2fd1a2a2342624b63a36bfcbf010fdbb5e689.png)
然後,我就從第一頁開始,一頁頁的點,點到 23 頁的時候,果然是符合我的猜測的:
![](https://i.iter01.com/images/3a0bda14fa869dace63c68c8a0a6282364c8b59f9668f0a87ff1e8184811b643.png)
雖然後面還有接近 100 頁,但是全是空白頁,這應該是知乎的一個 BUG 吧?
算了,不深究。
![](https://i.iter01.com/images/7a240d07eaacfc7c0e463164c2a0102b8d520dce8f78ca8b476da54ecb42ffd4.png)
先能拿多少資料就拿多少資料,牢記使命,吃瓜的時候要跟著主線走,先把主線劇情打通關。
千萬不要因為走的太遠,而忘記自己吃瓜的初衷。
現在的主線就是 root_comments。
而我已經把 root_comments 的資料拿到了,還要獲取對應的 child_comments 怎麼搞呢?
還是得找到對應的介面才行。
當點選評論下面的“檢視回復”時,介面是這樣的:
![](https://i.iter01.com/images/f8adfa09eb6832279d1a071dd223208c16c37f6ab3b0cb8b3f92983453e5a52b.png)
其中有一串神祕的數字,10093095452,這是什麼玩意?
我也不知道,但是我知道這是一種 restful 風格的請求,所以這個數字,是一個入參。
既然是獲取 root_comments 下的 child_comments,這個入參一定和 root_comments 有關。
於是我拿著這串數字直接去搜尋了獲取 root_comments 時的第一頁返回資料:
![](https://i.iter01.com/images/2cc74e846432c21ab3af24f1e30a073ab6d8b2ee338cfbfef043820f85fd227a.png)
你看我標註了五角星的地方,原來這串神祕數字,就是每個 root_comments 的 id 呀。
而且還有一個意外收穫,我發現返回的資料結構裡面有個 child_comment_count 屬性,這個資料就是代表這個 root_comments 下面有多少個評論。
所以,我在解析 root_comments 的時候,只需要判斷一下對應的 child_comment_count 屬性是否為 0。不為 0,則說明是有回覆的,按照前面說的 restful 的方式獲取資料即可。
也就是在程式中加入這樣的邏輯:
![](https://i.iter01.com/images/6a82b25fb00d61a1a7d7beeff9e5b7fdd540be1cb1e2342b5ebbc9d6601f7cb7.png)
而 handleChildComment 的關鍵其實就是拿到這個 url,後面的程式碼就和解析 root_comments 基本一致:
![](https://i.iter01.com/images/1c1e34babcb5b5cb4f1c778a1459cb73be41a3d675f3d7f32979bd9d09827cdf.png)
把程式碼跑起來,控制檯日誌列印的嘩嘩的:
![](https://i.iter01.com/images/da35b0be7e0ffe8b1df8b06c4145bb02772b377ffde06e25e28495788737fa96.png)
檢查了一下,看起來沒有毛病。
接下來就更簡單了,把資料搞到資料庫裡面去就完事了。
最後一共拉取到了 4267 條資料:
![](https://i.iter01.com/images/2627669d9fa01ba377991c674ef93426bc14896ec949a0ef2cde601a4976fb02.png)
距離 6800 條評論還差一點,原因前面說了,當 offset 大於某個值的時候,介面就沒有返回資料了。
這不重要,反正大部分資料都拿到了。
接下來就是安心吃瓜了。
![](https://i.iter01.com/images/1d8aba34712c2782f8b62302c149e6e77c9586dc1c0d712a6e682be75560d421.png)
開始吃瓜
因為我最關心的是答主說了些什麼事情。
所以我首先過濾了一下 cna777 這個答主的所有回覆:
![](https://i.iter01.com/images/424c11484ddc3c1f9601b69d3f776f40c97877a08c5d80788dac795cf7a546f5.png)
這個吃瓜的姿勢就很舒服了。
從答主的回答來看,好像截至 5 月 26 號,只有三個人報名,如果到 6.1 還沒有 10 個人的話,可能今年就不會組織了。
果然是吃瓜的人很多,但是都真的只是吃瓜而已。
其中我還看到答主有這樣的一個評論,有點意思,我當然要看看上下文是什麼了。
![](https://i.iter01.com/images/9e7631c2d57196117634448d04cb5559418c76188285585fa6540abe16672147.png)
前面扒評論的時候我說了,我把 root_comments 的 id 存下來了,所有隻需要過濾指定的 id,就能找到上下文:
![](https://i.iter01.com/images/a9965a4ddb31d8fa59d986fdae6601cdc0f81563f3a22f7687467900c8ac637b.png)
原來是有人質疑答主是否有這麼多錢。這個沒啥意思,但是我驚訝的發現這個 root_comments 的 id 下面居然有 197 條評論。
是一個非常有爭議性的評論,所以我看了一下評論的內容:
![](https://i.iter01.com/images/ac4433ea0ebddf562e54d25bbe93315d58c2932b987be75296e7b5e0bb87e335.png)
然後找到了對應的頁面上的評論,把這 197 條評論全部看完了:
![](https://i.iter01.com/images/3f992b0efa248c4af6348264d35b1e1bb26b9a91f60e644982957bdecd89d11b.png)
總結起來就是說這個叫做 kiki 的同學,說他是高中數學老師,他覺得這個挑戰可以完成,但是不知道為什麼,即使非常多的吃瓜群眾叫他展現一波實力,他也一直顧左右而言它,並不正面應戰。
主要是質疑答主是否能拿出這 100w,這個質疑也在其他的評論中出現過。
但是我就奇怪了,要是真的有實力就直接去報名啊。主要是現在報名的人都沒有 10 個,大家就開始懷疑答主能否拿出 100w。然後借題發揮,輸出自已的各種觀點。
這個邏輯的先後順序也不對的嘛,答主不是多次說了嘛,等報名人夠 10 人了,他會去gz處進行公正的嘛。
![](https://i.iter01.com/images/30c2abf51eabfa0dc6cbb7f9aea69bf715e74153d28aa55dd16bc70bb47ed6cc.png)
接著我想看看哪個評論的話題性是最大的,也就是 root_comments 的 child_comment_count 數是最大的。
我擷取了排名前十的資料:
![](https://i.iter01.com/images/5202fbb0a0667e9dd9d5afd4d8011182e26685eaac723a86f49385c0bb9c4ebd.png)
第一位是一名叫做“無亡”的使用者,他說:
我要挑戰 天津考生 天津卷常年 40 分鐘以內寫完 很多次 150
然後下面有 610 個回覆:
![](https://i.iter01.com/images/a957e0503e40ac22661947d0dc0f98aca015a1a2b69ed15e6910333c8691434f.png)
從評論上看這個哥們好像確實報名了,也是第二個報名的。
瞬間覺得這真的是個人才啊,於是想去他的主頁看看這是何方神聖。
結果...
![](https://i.iter01.com/images/b70e8082b00c20e96aedede5c674c7f0122f62629c98d00d9d21f5cb8b318173.png)
這是牛逼吹的太大,兜不住了,自己就銷號了?
這裡答主說的“退乎”的人,應該就是這個“無亡”同學吧:
![](https://i.iter01.com/images/7f809a4eeb8e03ec654de8c0ea500127bdb5218b6c3f6c590c4b7c1d7a7a25a8.png)
所以,這個故事告訴我們什麼?
口嗨一時爽,裝逼要謹慎。
![](https://i.iter01.com/images/4b1ca6de0673a1dcd1c36616b6fabf04b88b1e6d63ffa5dbc511f938c7defdfa.png)
回覆第二多的是這個:
![](https://i.iter01.com/images/6da9793c819f5eb9125d2fc2379df6f01e45be4a3d95e7345dfa427ced7c363b.png)
很多吃瓜群眾都願意對這個比賽進行眾籌,我粗略的算了一下,好像大家的錢加起來,距離 100w 也不算特別遠了。
說真的,要是這個活動辦起來,我也願意花錢買個門票,看看應戰的人到底是何方神聖。
翻了很多評論,反正就是有幾個人裝逼說問題不大,但是一叫報名就各種各樣的藉口。
然後我換了一個視角,按照評論點贊數最高進行排序:
![](https://i.iter01.com/images/74538e93723bfc5b38d8e2ea2f17ab8244bf651020f2eedb14a00be8070e6e38.png)
前 10 前面,我最喜歡的是這個評論:
![](https://i.iter01.com/images/1b407b7563e3046183dec36b27e9117f30029b7de53fb119837c9c2a39e8eba4.png)
真的是這樣的,只要在任何的社交平臺裡面討論到跑步相關的話題,總是有人冒出幾個特別的離譜的成績,吹的是有板有眼的。
但是真的要說線上下來對線,真刀真槍的幹一場,馬上各種各樣的理由就來了,反正就是不承認自己在吹牛逼。
包括這個評論下面也是,大家又開始關於跑步成績吵起來了。
![](https://i.iter01.com/images/786189c41d0c2448b852e67ce025bab4434160329d39ce9c2b44fa265615c26d.png)
用我們程式設計師的話說就是:no bb,show me code.
還在評論裡面發現了一個角度刁鑽的哥們:
![](https://i.iter01.com/images/f61bb516743cbb9d06b04627f0398fc6d7d965d9711dc0701b9d8ac45b86eac8.png)
他居然想組局對賭,真的是處處是人才啊。
![](https://i.iter01.com/images/dcabe303736048dc52fe566cd4e9ca7c7c6f2862422cafe25fa5285f1a03174a.png)
我還發現了特別多的評論是"cy",我也不懂是啥意思。就搜了一下,原來是“插眼”的意思。
要說插眼,我就懂了。我盲僧插眼賊溜。
有 10 分之一的評論都是 cy:
![](https://i.iter01.com/images/24ba4158952a6666bf5315f02a299d38a65f30f290d8bec663f36781ef27cb0c.png)
評論區還有特別多的瓜可以吃,但是我就不一一列舉了。
我接著就去了 B 站,我看到了兩個相關的視訊。
第一個是這個:
https://www.bilibili.com/video/BV1Va411t7CV/?spm_id_from=333.788.recommend_more_video.2
![](https://i.iter01.com/images/4a8884da0c5b2eb5d273f807c9bd6f18dee379a32dd5bb23565e50d66cd87164.png)
這個 up 主的自我介紹是這樣的:
我高考數學 148 分,考入清華基課班競賽業餘選手,教了 12 年數學。但是做題巔峰事情的我應該也做不到,但是我聯絡報名了大眾組,重在參與。
這哥們,一看就是實在人,實力線上,但是不輕易裝逼,報個大眾組,賺個噱頭,穩得一筆。
這個視訊下面有個評論是把我看笑了:
![](https://i.iter01.com/images/b74651caa37f56fe712dcde994643ea63a0d940dd20fe0e677da05de2c7cd376.png)
我也來裝一個,本人高考728分,現在在麻省理工數學系讀博,本科期間總共發表了接近500篇sci,研一的時候讀到過哥德巴赫猜想,花了我兩天才解決掉,也因此獲得過菲爾茲獎,我想說,高考我50分鐘做完數學滿分,但這也算我的極限了,因為我是看到題目就想到答案,再加上寫的時間,如果寫的再快點最少也要40幾分鐘吧,40分鐘以內根本不可能。裝完了,爽!
很好的諷刺了這個話題下面的一些“裝逼犯”。
而我想說的是:兄弟,別光喝酒,吃幾顆花生米啊,邊吃邊說。
第二個視訊是這個:
https://www.bilibili.com/video/BV1sP4y1M7K4/?spm_id_from=333.788.recommend_more_video.-1
![](https://i.iter01.com/images/2cf9eacb5ee3522a45179c5053bbbb3ed467c91bfbd90a95d19fb09907d172c6.png)
這個大佬給出的結論是有可能。因為考試之前是可以提前十分鐘拿到試卷,但是不能動筆的。
我依稀記得好像確實是先拿到了試卷,但是不能動筆。至於是提前多久那就不記得了。
大佬說,有這十分鐘,完全可以通過口算,把選擇題和填空題做完。
是的,沒聽錯,可以通過口算,秒殺高考數學絕大部分的選擇題和填空題:
![](https://i.iter01.com/images/83ec4dc8eed4c2a1a34eb5311824bc28ac5716fd1ca2a472274b21f05a0399ab.png)
聽的我一愣一愣的:這特麼還是人嗎?
這瓜越往後面吃,我越覺得人和人之間的參差是巨大的。在這些學神面前,我都不好意思說自己是學渣。
在我吃完瓜,寫完文章之後,我發現答主更新了:
![](https://i.iter01.com/images/5b084f0d595402de6c79fa9051ba273994fb0a8418147532e06e31f827c39d55.png)
太遺憾了,居然沒有把局組起來。到最後,還是隻有三個人報名了。
但是答主表示明年還能再來,只要湊夠十人我們隨時可以開始。
那麼,這個叫做“李笑”的、不在國內無法參賽的、看起來很厲害的使用者,不知道到時候會不會迎戰:
![](https://i.iter01.com/images/509df0f1cc354c3948967021add2c300e9e61f04d068e18f086b931dd390f108.png)
我相信你是個大佬,只不過你拿學歷說事兒的樣子,真的 low。
另外,我是真的想這個活動舉辦起來,有主辦方,有贊助商的那種,然後全平臺直播。
對了一定要有解說,不然我是真的看不懂。
雖然這些題我是不會了,但是吃瓜,我一定站在最前線。
![](https://i.iter01.com/images/f9777dded7401192f53f2ba956bf3322fb6801461e487b002f184f1855689290.png)