爬取大眾點評


轉載於https://cuiqingcai.com/6341.html,對崔大大表示非常感謝

1.前言

在工作生活中,發現越來越多的人對大眾點評的數據感興趣,而大眾點評的反爬又是比較嚴格的。采取的策略差不多是寧可錯殺一萬,也不放過一個。有的時候正常瀏覽都會跳出驗證碼。

另外,在PC端的展示數據是通過CSS來控制的,從網頁上看不出來太大的區別,但是用普通的腳本取獲取時,會發現數據是獲取不到的,具體的源代碼是下面這樣的:

然,在搜資料的時候,你會發現,很多教程都是用的selenium之類的方法,效率太低,沒有啥技術含量。

所以,這篇文章的面向的對象就是PC端的大眾點評;目標是解決這種反爬蟲措施,使用requests獲取到干凈正確的數據;

跟着我,絕不會讓你失望。

2.正文開始

相信搞過大眾點評網站的同學都應該知道上面的這種是一個css反爬的方法,具體的解析操作,即將開始。

找到藏着秘密的css

當我們的鼠標在上面框框內的span上面點擊時,會發現右邊部分會相應的發生變化:

這張圖片很重要,很重要,很重要,我們要的值,幾乎都從這里匹配出來。

這里我們看到了“vxt20”這個變量對應的兩個像素值,前面的是控制用哪個數字,后面的是控制用哪一段的數字集合,先記下,后面要用,同時這里的值應該是6;

這里其實就是整個破解流程最關鍵的一步了。在這里我們看到了一個鏈接。

瞎貓當死耗子吧,點進去看看。

https://s3plus.meituan.net/v1/mss_0a06a471f9514fc79c981b5466f56b91/svgtextcss/f556c0559161832a4c6192e097db3dc2.svg

你會發現,返回的是一些數字,我一開始是不知道這是啥玩意的,看過一些大神的解析才知道,其實這里就是我們看到的數字的來源,也就是整個破解的源頭,知道了這些數字的含義,也就可以直接破解了整個反爬的流程。

現在直接看源代碼:

可以看到這里面的幾個關鍵數字:font-size:字體大小;還有幾個y的值,我到后面才知道原來這個y是個閾值,起的是個控制的作用。

所以,這一反爬的原理就是:

獲取屬性值與偏移量和閾值映射,然后從svg文件中找到真數據。

現在我們就要用到上面的像素值了。

1.把所有的值取絕對值;

2.用后面的值來選擇用哪個段的數字,這里的值是103,所以使用第三個段的數字集合;

3.因為每個字體是12個像素,所以用163/12=13.58,約等於14,那么我們數一下第14個數字是啥,沒錯,是6,和預期一樣。你可以多試驗幾次。

以上,就是整個破解的邏輯過程。

畫個流程圖,裝個逼:

 

3.Show Code

下面開始曬代碼,俗話說得好,天下代碼一大抄。

這里對主要的步驟代碼進行解釋, 如果你想獲取更多的代碼,請關注我的公眾號,並發送 “大眾點評”即可。。

1.獲取css_url及span對應的TAG值;

2.獲取屬性與像素值的對應關系

 

3.獲取svg文件的url

 

4. 獲取最終的值

 

4.結果展示

評論條數數據

其實,其他的我都寫好了,就不貼了

大眾點評還不會爬?跟着我,我教你。

 

評論具體數據

 

 

5.結語

以上就是大眾點評Css反爬破解的全部步驟和部分代碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM