您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Python爬蟲高頻率面試題有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Python爬蟲高頻率面試題有哪些”吧!
1 . Request中包含什么呢?
1、請求方式:主要有GET和POST兩種方式,POST請求的參數(shù)不會包含在url里面 2、請求URL URL:統(tǒng)一資源定位符,如一個網(wǎng)頁文檔、一張圖片、一個視頻等都可以用URL來唯一確定 3、請求頭信息,包含了User-Agent(瀏覽器請求頭)、Host、Cookies信息 4、請求體,GET請求時,一般不會有,POST請求時,請求體一般包含form-data
2 . Response中包含什么信息?
1、響應(yīng)狀態(tài):狀態(tài)碼 正常響應(yīng)200 重定向 2、響應(yīng)頭:如內(nèi)容類型、內(nèi)容長度、服務(wù)器信息、設(shè)置cookie等 3、響應(yīng)體信息:響應(yīng)源代碼、圖片二進(jìn)制數(shù)據(jù)等等
3 . 常見的http狀態(tài)碼
200狀態(tài)碼 服務(wù)器請求正常 301狀態(tài)碼:被請求的資源已永久移動到新位置。服務(wù)器返回此響應(yīng)(對 GET 或 HEAD 請求的響應(yīng))時,會自動將請求者轉(zhuǎn)到新位置。 302狀態(tài)碼:請求的資源臨時從不同的URI響應(yīng)請求,但請求者應(yīng)繼續(xù)使用原有位置來進(jìn)行以后的請求 401狀態(tài)碼:請求要求身份驗(yàn)證。 對于需要登錄的網(wǎng)頁,服務(wù)器可能返回此響應(yīng)。 403狀態(tài)碼:服務(wù)器已經(jīng)理解請求,但是拒絕執(zhí)行它。與401響應(yīng)不同的是,身份驗(yàn)證并不能提供任何幫助,而且這個請求也不應(yīng)該被重復(fù)提交。 404狀態(tài)碼:請求失敗,請求所希望得到的資源未被在服務(wù)器上發(fā)現(xiàn)。 500狀態(tài)碼:服務(wù)器遇到了一個未曾預(yù)料的狀況,導(dǎo)致了它無法完成對請求的處理。一般來說,這個問題都會在服務(wù)器的程序碼出錯時出現(xiàn)。 503狀態(tài)碼:由于臨時的服務(wù)器維護(hù)或者過載,服務(wù)器當(dāng)前無法處理請求。
4 . HTTP 的請求和響應(yīng)都包含哪些內(nèi)容
HTTP請求頭 Accept:瀏覽器能夠處理的內(nèi)容類型 Accept-Charset:瀏覽器能夠顯示的字符集 Accept-Encoding:瀏覽器能夠處理的壓縮編碼 Accept-Language:瀏覽器當(dāng)前設(shè)置的語言 Connection:瀏覽器與服務(wù)器之間連接的類型 Cookie:當(dāng)前頁面設(shè)置的任何Cookie Host:發(fā)出請求的頁面所在的域 Referer:發(fā)出請求的頁面的URL User-Agent:瀏覽器的用戶代理字符串 HTTP響應(yīng)頭部信息: Date:表示消息發(fā)送的時間,時間的描述格式由rfc822定義 server:服務(wù)器名字。 Connection:瀏覽器與服務(wù)器之間連接的類型 content-type:表示后面的文檔屬于什么MIME類型 Cache-Control:控制HTTP緩存
5 . mysql的索引在什么情況下失效
1.如果條件中有or,即使其中有條件帶索引也不會使用(這也是為什么盡量少用or的原因) 要想使用or,又想讓索引生效,只能將or條件中的每個列都加上索引 2.對于多列索引,不是使用的第一部分,則不會使用索引 3.like查詢以%開頭 4.如果列類型是字符串,那一定要在條件中將數(shù)據(jù)使用引號引用起來,否則不使用索引 5.如果mysql估計(jì)使用全表掃描要比使用索引快,則不使用索引
6 . MySQL 有什么引擎,各引擎之間有什么區(qū)別?
主要 MyISAM 與 InnoDB 兩個引擎,其主要區(qū)別如下: 1、InnoDB 支持事務(wù),MyISAM 不支持,這一點(diǎn)是非常之重要。事務(wù)是一種高級的處理方式,如在一些列增刪改中只要哪個出錯還可以回滾還原,而 MyISAM就不可以了; 2、MyISAM 適合查詢以及插入為主的應(yīng)用,InnoDB 適合頻繁修改以及涉及到安全性較高的應(yīng)用; 3、InnoDB 支持外鍵,MyISAM 不支持; 4、MyISAM 是默認(rèn)引擎,InnoDB 需要指定; 5、InnoDB 不支持 FULLTEXT 類型的索引; 6、InnoDB 中不保存表的行數(shù),如 select count() from table 時,InnoDB;需要掃描一遍整個表來計(jì)算有多少行,但是 MyISAM 只要簡單的讀出保存好的行數(shù)即可。注意的是,當(dāng) count()語句包含 where 條件時 MyISAM 也需要掃描整個表; 7、對于自增長的字段,InnoDB 中必須包含只有該字段的索引,但是在 MyISAM表中可以和其他字段一起建立聯(lián)合索引; 8、清空整個表時,InnoDB 是一行一行的刪除,效率非常慢。MyISAM 則會重建表; 9、InnoDB 支持行鎖(某些情況下還是鎖整表,如 update table set a=1 where user like '%lee%'
7 . Scrapy優(yōu)缺點(diǎn):
優(yōu)點(diǎn): scrapy 是異步的 采取可讀性更強(qiáng)的xpath代替正則 強(qiáng)大的統(tǒng)計(jì)和log系統(tǒng) 同時在不同的url上爬行 支持shell方式,方便獨(dú)立調(diào)試 寫middleware,方便寫一些統(tǒng)一的過濾器 通過管道的方式存入數(shù)據(jù)庫 缺點(diǎn):基于python的爬蟲框架,擴(kuò)展性比較差 基于twisted框架,運(yùn)行中的exception是不會干掉reactor,并且異步框架出錯后是不會停掉其他任務(wù)的,數(shù)據(jù)出錯后難以察覺。
8 . HTTPS 是如何實(shí)現(xiàn)安全傳輸數(shù)據(jù)的
客戶端(通常是瀏覽器)先向服務(wù)器發(fā)出加密通信的請求 服務(wù)器收到請求,然后響應(yīng) 客戶端收到證書之后會首先會進(jìn)行驗(yàn)證 服務(wù)器收到使用公鑰加密的內(nèi)容,在服務(wù)器端使用私鑰解密之后獲得隨機(jī)數(shù)pre-master secret,然后根據(jù)radom1、radom2、pre-master secret通過一定的算法得出session Key和MAC算法秘鑰,作為后面交互過程中使用對稱秘鑰。同時客戶端也會使用radom1、radom2、pre-master secret,和同樣的算法生成session Key和MAC算法的秘鑰。 然后再后續(xù)的交互中就使用session Key和MAC算法的秘鑰對傳輸?shù)膬?nèi)容進(jìn)行加密和解密。
9 . 描述下scrapy 框架運(yùn)行的機(jī)制?
從start_urls里獲取第一批url并發(fā)送請求,請求由引擎交給調(diào)度器入請求隊(duì)列,獲取完畢后,調(diào)度器將請求隊(duì)列里的請求交給下載器去獲取請求對應(yīng)的響應(yīng)資源,并將響應(yīng)交給自己編寫的解析方法做提取處理: 如果提取出需要的數(shù)據(jù),則交給管道文件處理; 如果提取出url,則繼續(xù)執(zhí)行之前的步驟(發(fā)送url請求,并由引擎將請求交給調(diào)度器入隊(duì)列...),直到請求隊(duì)列里沒有請求,程序結(jié)束。
到此,相信大家對“Python爬蟲高頻率面試題有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。