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