成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Python有哪些高頻的面試題

這篇文章主要介紹“Python有哪些高頻的面試題”,在日常操作中,相信很多人在Python有哪些高頻的面試題問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python有哪些高頻的面試題”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的海棠網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

一. 簡述一下scrapy的基本流程?

scrapy分為9個步驟:

  1. Spiders需要初始的start_url或則函數(shù)stsrt_requests,會在內(nèi)部生成Requests給Engine;

  2. Engine將requests發(fā)送給Scheduler;

  3. Engine從Scheduler那獲取requests,交給Download下載;

  4. 在交給Dowmload過程中會經(jīng)過Downloader Middlewares(經(jīng)過process_request函數(shù));

  5. Dowmloader下載頁面后生成一個response,這個response會傳給Engine,這個過程中又經(jīng)過了Downloader Middlerwares(經(jīng)過process_request函數(shù)),在傳送中出錯的話經(jīng)過process_exception函數(shù);

  6. Engine將從Downloader那傳送過來的response發(fā)送給Spiders處理,這個過程經(jīng)過Spiders Middlerwares(經(jīng)過process_spider_input函數(shù));

  7. Spiders處理這個response,返回Requests或者Item兩個類型,傳給Engine,這個過程又經(jīng)過Spiders Middlewares(經(jīng)過porcess_spider_output函數(shù));

  8. Engine接收返回的信息,如果使Item,將它傳給Items Pipeline中;如果是Requests,將它傳給Scheduler,繼續(xù)爬蟲;

  9. 重復(fù)第三步,直至沒有任何需要爬取的數(shù)據(jù)

二. python3.5語言中enumerate的意思是

對于一個可迭代的(iterable)/可遍歷的對象(如列表、字符串),enumerate將其組成一個索引序列,利用它可以同時獲得索引和值

enumerate多用于在for循環(huán)中得到計數(shù)

三. 你是否了解谷歌的無頭瀏覽器?

無頭瀏覽器即headless browser,是一種沒有界面的瀏覽器。既然是瀏覽器那么瀏覽器該有的東西它都應(yīng)該有,只是看不到界面而已。

Python中selenium模塊中的PhantomJS即為無界面瀏覽器(無頭瀏覽器):是基于QtWebkit的無頭瀏覽器。

四. scrapy和scrapy-redis的區(qū)別?

scrapy是一個爬蟲通用框架,但不支持分布式,scrapy-redis是為了更方便的實現(xiàn)scrapy分布式爬蟲,而提供了一些以redis為基礎(chǔ)的組件

為什么會選擇redis數(shù)據(jù)庫?

因為redis支持主從同步,而且數(shù)據(jù)都是緩存在內(nèi)存中,所以基于redis的分布式爬蟲,對請求和數(shù)據(jù)的高頻讀取效率非常高

什么是主從同步?

在Redis中,用戶可以通過執(zhí)行SLAVEOF命令或者設(shè)置slaveof選項,讓一個服務(wù)器去復(fù)制(replicate)另一個服務(wù)器,我們稱呼被復(fù)制的服務(wù)器為主服務(wù)器(master),而對主服務(wù)器進行復(fù)制的服務(wù)器則被稱為從服務(wù)器(slave),當客戶端向從服務(wù)器發(fā)送SLAVEOF命令,要求從服務(wù)器復(fù)制主服務(wù)器時,從服務(wù)器首先需要執(zhí)行同步操作,也即是,將從服務(wù)器的數(shù)據(jù)庫狀態(tài)更新至主服務(wù)器當前所處的數(shù)據(jù)庫狀態(tài)

五. scrapy的優(yōu)缺點?為什么要選擇scrapy框架?

優(yōu)點:

采取可讀性更強的xpath代替正則 強大的統(tǒng)計和log系統(tǒng) 同時在不同的url上爬行 支持shell方式,方便獨立調(diào)試 寫middleware,方便寫一些統(tǒng)一的過濾器 通過管道的方式存入數(shù)據(jù)庫

缺點:

基于python爬蟲框架,擴展性比較差,基于twisted框架,運行中exception是不會干掉reactor,并且異步框架出錯后是不會停掉其他任務(wù)的,數(shù)據(jù)出錯后難以察覺

六. scrapy和requests的使用情況?

requests 是 polling 方式的,會被網(wǎng)絡(luò)阻塞,不適合爬取大量數(shù)據(jù)

scapy 底層是異步框架 twisted ,并發(fā)是最大優(yōu)勢

七. 描述一下scrapy框架的運行機制?

從start_urls里面獲取第一批url發(fā)送請求,請求由請求引擎給調(diào)度器入請求對列,獲取完畢后,調(diào)度器將請求對列交給下載器去獲取請求對應(yīng)的響應(yīng)資源,并將響應(yīng)交給自己編寫的解析方法做提取處理,如果提取出需要的數(shù)據(jù),則交給管道處理,如果提取出url,則繼續(xù)執(zhí)行之前的步驟,直到多列里沒有請求,程序結(jié)束。

八. 寫爬蟲使用多進程好,還是用多線程好?

IO密集型代碼(文件處理、網(wǎng)絡(luò)爬蟲等),多線程能夠有效提升效率(單線程下有IO操作會進行IO等待,造成不必要的時間浪費,而開啟多線程能在線程A等待時,自動切換到線程B,可以不浪費CPU的資源,從而能提升程序執(zhí)行效率)。在實際的數(shù)據(jù)采集過程中,既考慮網(wǎng)速和響應(yīng)的問題,也需要考慮自身機器的硬件情況,來設(shè)置多進程或多線程

九. 常見的反爬蟲和應(yīng)對方法?

  1. 基于用戶行為,同一個ip段時間多次訪問同一頁面 利用代理ip,構(gòu)建ip池

  2. 請求頭里的user-agent 構(gòu)建user-agent池(操作系統(tǒng)、瀏覽器不同,模擬不同用戶)

  3. 動態(tài)加載(抓到的數(shù)據(jù)和瀏覽器顯示的不一樣),js渲染 模擬ajax請求,返回json形式的數(shù)據(jù)

  4. selenium / webdriver 模擬瀏覽器加載

  5. 對抓到的數(shù)據(jù)進行分析

  6. 加密參數(shù)字段 會話跟蹤【cookie】 防盜鏈設(shè)置【Referer

十. 分布式爬蟲主要解決什么問題?

面對海量待抓取網(wǎng)頁,只有采用分布式架構(gòu),才有可能在較短時間內(nèi)完成一輪抓取工作。

它的開發(fā)效率是比較快而且簡單的。

到此,關(guān)于“Python有哪些高頻的面試題”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

當前名稱:Python有哪些高頻的面試題
轉(zhuǎn)載源于:http://jinyejixie.com/article30/ppjepo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、移動網(wǎng)站建設(shè)網(wǎng)頁設(shè)計公司、Google網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計