爬蟲面試基礎(chǔ)整理

  1. 常用網(wǎng)絡(luò)數(shù)據(jù)爬取方法
    urllib
    正則表達(dá)式
    Beautiful Soup
    Selenium
    Scrapy
    Lxml
  2. 常見的反爬手段與應(yīng)對方法
  • 反爬手段:headers字段(User-Agent字段、過referer字段、cookie)
    解決方法:在爬蟲中添加Headers,瀏覽器的User-Agent復(fù)制到爬蟲的Headers中,將Referer值修改為目標(biāo)網(wǎng)站域名。
  • 反爬手段:js(跳轉(zhuǎn)、生成了請求參數(shù)、數(shù)據(jù)的加密)
    解決方法:selenium+phantomJS框架,調(diào)用瀏覽器內(nèi)核,并利用phantomJS執(zhí)行js來模擬人為操作以及觸發(fā)頁面中的js腳本。
  • 反爬手段:IP地址
    解決方法:IP代理,隨機間隔幾秒。
  • 反爬手段:驗證碼
    解決方法:cookie登錄、打碼平臺、selenium 模擬
  • 反爬手段:css(利用css掩蓋真實數(shù)據(jù))
    解決方法:找到被替換文本和順序、重排文本、對原文中span標(biāo)簽根據(jù)class序號進(jìn)行替換。
  1. 數(shù)據(jù)去重,清洗,存入數(shù)據(jù)庫
  • set()
  • 數(shù)據(jù)庫唯一約束
  • Scrapy內(nèi)置的url去重方法
  • 正則表達(dá)式
  • 編寫代碼清洗數(shù)據(jù)
  • 數(shù)據(jù)庫存儲后清洗
  1. Scrapy的基本結(jié)構(gòu)
    引擎(Scrapy)
    調(diào)度器(Scheduler)
    下載器(Downloader)
    爬蟲(Spiders)
    項目管道(Pipeline)
    下載器中間件(Downloader Middlewares)
    爬蟲中間件(Spider Middlewares)
    調(diào)度中間件(Scheduler Middewares)
  2. Scrapy運行流程
    1.引擎從調(diào)度器中取出一個URL用于抓取
    2.引擎把URL封裝成一個Request給下載器
    3.下載器把資源下載并封裝成Response
    4.爬蟲解析Response
    5.解析出Item交給管道進(jìn)一步處理
    6.解析出URL把URL交給調(diào)度器等待抓取
  3. Scrapy幾種中間件
  • 下載器中間件(Downloader Middlewares):請求到網(wǎng)頁后,頁面被下載時進(jìn)行處理
  • 爬蟲中間件(Spider Middlewares):在爬蟲運行中進(jìn)行一些處理
  • 調(diào)度中間件(Scheduler Middewares)
  1. 代理怎么使用
    可以放在一個列表中,隨機選擇一個代理去訪問網(wǎng)站。
  2. 同步和異步
  • 線程方面:
    同步:多個線程同時訪問同一資源,等待訪問結(jié)束,浪費時間、效率低下。
    異步:在訪問資源的時,在空閑等待時可以同時訪問其他的資源。
  • 網(wǎng)絡(luò)方面:
    同步:提交請求→等待服務(wù)器處理→處理完畢返回 期間客戶端瀏覽器不能做任何事情。
    異步:事件觸發(fā)請求→服務(wù)器處理→處理完畢 期間瀏覽器可以做其他事情。
  1. 鏈表和順序存儲
  • 順序存儲:
    原理:數(shù)據(jù)存儲在一塊連續(xù)的內(nèi)存空間。
    優(yōu)點:存儲效率高、速度快、通過下標(biāo)直接存儲。
    缺點:插入刪除慢、不可以增長長度。
  • 鏈表存儲
    原理:動態(tài)分配空間,存儲器有空間就不會發(fā)生存儲溢出。
    優(yōu)點:插入刪除速度快、保留物理順序,更改只需改變指針指向。
    缺點:查找需要循環(huán)鏈表,速度慢。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容