前幾天因為要和大學同學聚會,所以看了一下大眾點評。在刷一家餐廳的點評時看到了乙個廚師的名字,就好奇這是誰,然後就複製名字準備去搜一下。點評做了防複製,當然直接用瀏覽器開發者工具或者檢視源**可破。就在用瀏覽器開發者工具的時候,發現了部分字被替換成了標籤,猜測是作為一種反爬蟲的手段,就稍做研究了一下。
通過chrome開發者工具可以看到,部分字被替換成了類似於下列的**:
class
="review"
>
svgmtsi
>
在審查元素**現
,可以在網頁源**中看到對應的unicode編碼。
class
="review"
>
svgmtsi
>
或者,可以通過js轉換成對應的十六進製制(當然這不是必要的,只是順便玩了一下- -)。
''
.charcodeat(0
).tostring(16
)// e1ee
@font-face
.review
將該woff檔案轉為svg格式後,可以看到其中有e1ee
對應的字型定義。
glyph-name
="unie1ee"
unicode="
" d
="m404 644h-161q30 75 47 164l-72 10q-13 -90 -43 -174h-93v-711h70v86h182v-57h70v682zm152 86v219h182v-219h-182zm152 370v206h182v-206h-182zm578 412l-58 -36q104 -123 165 -222l57 40q-56 93 -164 218zm921 643h-319q27 78 44 167l-71 9q-38 -213 -143 -360l43 -57
q58 77 100 171h275q-3 -432 -12 -517q-12 -77 -82 -77q-46 0 -109 3l17 -66l102 -4q126 1 140 115q15 118 15 616z"
/>
除了使用字型庫外,發現大眾點評每次請求的頁面中被替換的字也不相同,而且不同的時間點請求到的字型檔案也不同(未確認)。
本文只是對使用大眾點評使用字型庫作為防爬蟲方法作了初步的分析,以後有機會的話可能繼續對其進行深入的研究。由於不是因為爬蟲的用途,所以文中也混入了一些奇怪的東西- -。
大眾點評面試
今天早上去大眾點評面試,面試官問了乙個關於演算法的題目,當時腦袋短路,沒有回答出來,在地鐵上想了想,現在把答案發出來。題目大意是這樣的 實現乙個先進後出的佇列,要求能返回最大值,不能用迴圈。public class mystack public void push int a int array n...
抓取大眾點評評論
獲取每個字代表的偏移量 def get font dict 獲取每個字代表的偏移量 return url url r requests.get url,headers headers font list re.findall r.text font dict for font in font lis...
大眾點評APP分析隨筆
一 最核心功能 店鋪評價功能,使用者可以通過此功能對商家進行評分,也可以獲取其他人對商家的評分資訊。二 核心功能滿足的需求 3.商家使用者 通過檢視客戶評價,可以得到直接的客戶反饋,從而改進自己的經營。三 其它功能滿足的需求 1.優惠,使用者可以獲得優惠折扣 2.排隊預定,使用者可以遠端取號,減少排...