當了一次面試官,主要是面試爬蟲崗位,具體涉及scrapy爬蟲框架和一些數據存儲的小問題。具體的問題如下:
- scrapy框架如何將單機版爬蟲改為分布式爬蟲【使用scrapy_redis】,具體來講需要修改哪幾個組件的哪些具體部分
- Spider
1. 如何設置監聽redis隊列
2. 如何從redis內提取數據,并構造請求。介紹一下make_request_from_data函數的用法? - settings.py
1. 調度器 SCHEDULER
2. redis鏈接 REDIS_URL
3. 去重 DUPEFILTER_CLASS - 我們有一批1900個key,用于爬蟲使用。這些key調用上限為3000,而且有的時候部分key會失效,key的最大并發數為100。對于這一批key,你將如何設計用于分布式爬蟲。請你給一個基于scrapy_redis的爬蟲方案【具體可以從代理池的設計,維護,key的使用方面介紹】。【我們需要實時了解到每一個key的使用情況】
- 了解分布式消息隊列rabbitmq/kafka嗎?你有沒有部署維護的經驗?在使用過程中是如何確保消息不丟失【從消息的發布,消費兩方面簡單說說】?死信隊列了解過嗎?有沒有使用消息隊列實現過消息延遲/定時消費功能【要求一條數據在指定時間被消費】。有沒有了解過rabbitmq的交換機,介紹一下kafka和rabbitmq隊列的基礎隊列模式
- 熟悉js逆向嗎?
- 有通過js逆向解決過反爬問題嗎?有的話詳細介紹一下
1. 請求頭參數加密
2. 請求參數加密
3. cookie加密
4. 響應結果加密
5. 滑塊驗證碼了解嗎?遇到滑塊驗證碼如何解決? - 在scrapy分布式爬蟲中,如果有請求參數/請求頭參數/cookie等是需要即時生成,如何設計參數生成器/參數使用?
- 了解過mongo集群/es集群嗎?有沒有部署維護過集群
- mongo在更新數據時如何提升效率?【如何更新】
- 如何存儲碎片化數據?【千萬級別小圖片,數據會涉及轉移與上傳】
- 對于媒體數據如何存儲?【.mp4/.mp3】
- 有沒有開發/設計過爬蟲監控項目?我們需要監控爬蟲集群的請求速度,數據的入庫速度,服務器的負載,爬蟲的啟停,如何實現?
- redis使用過嘛?
- 有沒有在爬蟲開發過程中使用redis實現某些功能,詳細介紹一下?
- 使用過docker嗎?
- 在哪些方面使用docker,簡單介紹一下
- 有沒有使用docker部署過爬蟲?
- 有沒有使用k8s管理過docker容器與爬蟲