-
Python面試真題 - Django重定向你是如何實現(xiàn)的?用的什么狀態(tài)碼?
【Python面試真題】- Django重定向你是如何實現(xiàn)的?用的什么狀態(tài)碼? 使用HttpResponseRedirect redirect和reverse 狀態(tài)碼:302,301
-
Python面試真題 - 分布式爬蟲主要解決什么問題 ?
【Python面試真題】- 分布式爬蟲主要解決什么問題 ? 1)ip 2)帶寬 3)cpu 4)io
-
【Python面試真題】- scrapy和scrapy-redis有什么區(qū)別?為什么選擇redis數(shù)據(jù)庫?
【Python面試真題】- scrapy和scrapy-redis有什么區(qū)別?為什么選擇redis數(shù)據(jù)庫? 1) scrapy是一個Python爬蟲框架,爬取效率極高,具有高度定制性,但是不支持分布式。而scrapy-redis一套基于redis數(shù)據(jù)庫、運行在scrapy框架之上的組件,可以讓scrapy支持分布式策略,Slaver端共享Master端redis數(shù)據(jù)庫里的item隊列、請求隊列和請求指紋集合。 2) 為什么選擇redis數(shù)據(jù)庫,因為redis支持主從同步,而且數(shù)據(jù)都是緩存在內(nèi)存中…
-
Python面試真題 - 常見的反爬蟲和應對方法?
【Python面試真題】- 常見的反爬蟲和應對方法? 1).通過Headers反爬蟲 從用戶請求的Headers反爬蟲是最常見的反爬蟲策略。很多網(wǎng)站都會對Headers的User-Agent進行檢測,還有一部分網(wǎng)站會對Referer進行檢測(一些資源網(wǎng)站的防盜鏈就是檢測Referer)。如果遇到了這類反爬蟲機制,可以直接在爬蟲中添加Headers,將瀏覽器的User-Agent復制到爬蟲的Headers中;或者將Referer值修改為目標網(wǎng)站域名。對于檢測Headers的反爬蟲,在爬蟲中修改或者…
-
【Python面試真題】- 描述下scrapy框架運行的機制?
【Python面試真題】- 描述下scrapy框架運行的機制? 從start_urls里獲取第一批url并發(fā)送請求,請求由引擎交給調(diào)度器入請求隊列,獲取完畢后,調(diào)度器將請求隊列里的請求交給下載器去獲取請求對應的響應資源,并將響應交給自己編寫的解析方法做提取處理:1. 如果提取出需要的數(shù)據(jù),則交給管道文件處理;2. 如果提取出url,則繼續(xù)執(zhí)行之前的步驟(發(fā)送url請求,并由引擎將請求交給調(diào)度器入隊列...),直到請求隊列里沒有請求,程序結(jié)束。
-
Python面試真題- Django重定向你是如何實現(xiàn)的?用的什么狀態(tài)碼?
【Python面試真題】- Django重定向你是如何實現(xiàn)的?用的什么狀態(tài)碼? 使用HttpResponseRedirect redirect和reverse 狀態(tài)碼:302,301
-
Python面試真題 - 迭代器和生成器的區(qū)別 ?
【Python面試真題】- 迭代器和生成器的區(qū)別 ? 1)迭代器是一個更抽象的概念,任何對象,如果它的類有next方法和iter方法返回自己本身。對于string、list、dict、tuple等這類容器對象,使用for循環(huán)遍歷是很方便的。在后臺for語句對容器對象調(diào)用iter()函數(shù),iter()是Python的內(nèi)置函數(shù)。iter()會返回一個定義了next()方法的迭代器對象,它在容器中逐個訪問容器內(nèi)元素,next()也是Python的內(nèi)置函數(shù)。在沒有后續(xù)元素時,next()會拋出一個S…
-
Python面試真題 - 寫爬蟲是用多進程好?還是多線程好? 為什么?
【Python面試真題】- 寫爬蟲是用多進程好?還是多線程好? 為什么? IO密集型代碼(文件處理、網(wǎng)絡爬蟲等),多線程能夠有效提升效率(單線程下有IO操作會進行IO等待,造成不必要的時間浪費,而開啟多線程能在線程A等待時,自動切換到線程B,可以不浪費CPU的資源,從而能提升程序執(zhí)行效率)。在實際的數(shù)據(jù)采集過程中,既考慮網(wǎng)速和響應的問題,也需要考慮自身機器的硬件情況,來設置多進程或多線程
-
Python面試真題- scrapy和scrapy-redis有什么區(qū)別?為什么選擇redis數(shù)據(jù)庫?
【Python面試真題】- scrapy和scrapy-redis有什么區(qū)別?為什么選擇redis數(shù)據(jù)庫? 1)scrapy是一個Python爬蟲框架,爬取效率極高,具有高度定制性,但是不支持分布式。而scrapy-redis一套基于redis數(shù)據(jù)庫、運行在scrapy框架之上的組件,可以讓scrapy支持分布式策略,Slaver端共享Master端redis數(shù)據(jù)庫里的item隊列、請求隊列和請求指紋集合。 2)為什么選擇redis數(shù)據(jù)庫,因為redis支持主從同步,而且數(shù)據(jù)都是緩存在內(nèi)…
-
Python面試真題 - Tornado 的核是什么 ?
【Python面試真題】- Tornado 的核是什么 ? Tornado 的核心是 ioloop 和 iostream 這兩個模塊,前者提供了一個高效的 I/O 事件循環(huán),后者則封裝了 一個無阻塞的 socket 。通過向 ioloop 中添加網(wǎng)絡 I/O 事件,利用無阻塞的 socket ,再搭配相應的回調(diào) 函數(shù),便可達到夢寐以求的高效異步執(zhí)行。