前言
又到一年一度的“金三銀四”求職高峰期。對于爬蟲工程師來說,面試前做好充足準備,才能事半功倍。今天給小伙伴們分享5道Python爬蟲面試提及回答。
問題1:你寫爬蟲的時候都遇到過什么反爬蟲措施,你最終是怎樣解決的?
通過headers反爬蟲:解決策略,偽造headers,基于用戶行為反爬蟲:動態變化去爬取數據,模擬普通用戶的行為, 使用IP代理池爬取或者降低抓取頻率,或 通過動態更改代理ip來反爬蟲,基于動態頁面的反爬蟲:跟蹤服務器發送的ajax請求,模擬ajax請求,selnium,和phtamjs?;?使用selenium + phantomjs 進行抓取抓取動態數據,或者找到動態數據加載的json頁面。
驗證碼 :使用打碼平臺識別驗證碼
數據加密:對部分數據進行加密的,可以使用selenium進行截圖,使用python自帶的pytesseract庫進行識別,但是比較慢最直接的方法是找到加密的方法進行逆向推理。
問題2:你寫爬蟲的時候 使用的什么框架 選擇這個框架的原因是什么?
scrapy。
優勢:可以實現高并發的爬取數據, 注意使用代理,提供了一個爬蟲任務管理界面, 可以實現爬蟲的停止,啟動,調試,支持定時爬取任務,代碼簡潔
劣勢:1.可擴展性不強。2.整體上來說: 一些結構性很強的, 定制性不高, 不需要太多自定義功能時用pyspider即可, 一些定制性高的,需要自定義一 些 功能時則使用Scrapy。
問題3:請簡要介紹下scrapy框架,為什么要使用scrapy框架?scrapy框架有哪些優點?scrapy框架有哪幾個組件/模塊?簡單說一下工作流程。
- scrapy的去重原理(指紋去重到底是什么原理)
- scrapy中間件有幾種類,你用過哪些中間件*
- scrapy中間件再哪里起的作用
- scrapy實現分布式抓取簡單點來說
- 分布式的去重原理
- 海量數據的去重原理
問題5:為什么會用到代理?
一些網站會有相應的反爬蟲措施,例如很多網站會檢測某一段時間某個IP的訪問次數,如果訪問頻率太快以至于看起來不像正常訪客,它可能就會會禁止這個IP的訪問。所以我們需要設置一些代理服務器,每隔一段時間換一個代理,就算IP被禁止,依然可以換個IP繼續爬取。
問題6:驗證碼處理
1. 登陸驗證碼處理
圖片驗證碼:先將驗證碼圖片下載到本地,然后使用云打碼識別;
滑動驗證碼:使用selenium模擬人工拖動,對比驗證圖片的像素差異,
2. 爬取速度過快出現的驗證碼處理
設置setting.py中的DOWNLOAD_DELAY,降低爬取速度;
用xpath獲取驗證碼關鍵字,當出現驗證碼時,識別驗證碼后再繼續運行。
3. 如何用機器識別驗證碼**
對接打碼平臺
對攜帶驗證碼的頁面數據進行抓取
將頁面中的驗證碼進行解析, 將驗證碼圖片下載到本地
將驗證碼圖片提交給打碼平臺進行識別, 返回識別后的結果
總結
希望大家在以上回答的基礎上,盡可能的做到舉一反三。除此之外,你在面試時還遇到過什么問題呢?歡迎在評論留言。未來,小編將不定時為大家整理爬蟲面試題。最后,大家一定要在合法合規的情況下進行數據采集。
| 云立方網產品導航: 動態撥號vps 服務器租用 撥號服務器 |
客服導購
商務銷售
售后支持
合作投訴




