
公眾號:早起Python
作者:劉早起
大家好,我是早起。
在前幾天的文章中,我針某點評商家搜索頁面的字體反爬給出了解決方案,但是還有一個問題,那就是當時給出的方法是下載對應的woff字體文件,然后建立加密字體與編碼之間的映射關系來進行破解。
但是有一個問題就是不同頁面的字體文件,是動態(tài)加載的,換句話說就是你在這個頁面建立的映射關系,換一個頁面就不能用了。
那就沒有解決辦法了嗎?其實也不難,或者說對方還是給了很清晰的思考方向,因為,雖然每一個頁面的字體是動態(tài)加載的,但是這個動態(tài)僅針對字體解析后編碼的變化,字體內(nèi)部順序是沒有變化的
每兩個頁面中,僅僅是字體編碼發(fā)生了改變,而字體的位置順訊并沒有改變,所以我們只需要在解析每一頁的數(shù)據(jù)之前,先提取頁面中CSS樣式,再從CSS內(nèi)容中定位到字體文件存儲鏈接,之后就是請求這一頁對應的字體文件并解析構造匹配字典,后面的步驟就和上一篇文章一樣了。
那我們開始,目標是爬取某城市指定美食的全部商家信息,比如定位廣州搜索沙縣小吃,之后爬取全部的搜索頁面。
首先就是構造全部的URL,由于每一頁的URL是有一定規(guī)律的,所以這一步很簡單,從第一頁中提取全部頁數(shù)然后按照規(guī)律添加到url_list中即可,而這個數(shù)據(jù)沒有被加密
所以這部分代碼可以這樣寫
這部分代碼不難理解構造請求——解析頁面——提取頁數(shù)——模擬URL,其中get_ip()必須要返回一個可以使用的ip,不論你是用免費的還是付費的代理,在這里不做詳細講解。
搞定URL之后,我們來到最關鍵的步驟,寫一個函數(shù),傳進來一個頁面返回該頁的文字匹配字典,那么第一步就是把字體拿下來,下面四行代碼即可搞定
簡單來看一下這段代碼,我們傳入一個請求后得到的page后
“
第一行代碼使用正則表達式提取字體所在的css鏈接
第二行代碼使用requests請求css內(nèi)容
最后兩行代碼使用正則提取woff字體文件所在URL
”
如果你傳進去的頁面是正常的,那么現(xiàn)在我們就有地址、均價字段的字體所在URL,下面就可以使用requests將這兩個字體文件下載并保存在本地,代碼如下
現(xiàn)在工作目錄下就有兩個字體文件,之后就按照上一篇文章介紹的字體加密破解方法操作即可。所以這部分完整代碼如下:
你需要確保這里的page是正確包含內(nèi)容的,如果是被403之后的頁面或者是提示要輸入驗證碼之類的頁面是無法正確執(zhí)行的。
那么到這里,我們就搞定了在每一頁的字體文件都是動態(tài)加載的情況下如何爬取全部搜索頁面的信息,之后只需要寫一個循環(huán)爬去url_list中的全部URL,并使用pandas進行保存即可。
本文的分享就到這里,完整的代碼我就不提供了,因為某點評網(wǎng)站的限制,大概率拿走也是不能用的,但是最關鍵的函數(shù)已經(jīng)完整的發(fā)在文中了,復制粘貼就能使用。
如果你嘗試去爬取過大眾點評,會發(fā)現(xiàn)最難的不再是字體加密,而是捉摸不透的反爬機制,尤其是headers中參數(shù)的構造,cookie的破解,公眾號沒有留言,你可以添加早小起微信和我交流,我會在后續(xù)繼續(xù)更新相關文章!
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關鍵? 在循環(huán)神經(jīng)網(wǎng)絡(RNN)家族中,長短期記憶網(wǎng)絡(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務的價值轉化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預測分析中的應用:從數(shù)據(jù)查詢到趨勢預判? ? 在數(shù)據(jù)驅動決策的時代,預測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內(nèi)權威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應對策略? 長短期記憶網(wǎng)絡(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學方法在市場調(diào)研數(shù)據(jù)中的深度應用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉日期:解鎖數(shù)據(jù)處理的關鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎 ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03