python基礎(chǔ)知識

集合容器列表:

list是一種有序的集合永丝,可以隨時添加和刪除其中的元素、列表可以存放各種類型的 ??

數(shù)據(jù)列表包含了增刪改查:

查:index[值]下標(biāo)查詢 、

列表.count[值]統(tǒng)計值在列表中出現(xiàn)的次數(shù)?

len(列表)查看長度增:

列表.append(值)。向列表添加值 ?

列表.extend(值),向列表末尾增加另一個列表的值刪:

列表.pop(下標(biāo)) 根據(jù)下標(biāo)刪除回溺,并返回次元素悦荒。

列表.remove(值) 元素的值刪除單下劃線和雙下劃線的區(qū)別:

__foo__:一種約定,Python內(nèi)部的名字,用來區(qū)別其他用戶自定義的命名,以防沖突.

_foo:一種約定,用來指定變量私有.程序員用來指定私有變量的一種方式唯欣,

函數(shù)

不可變參數(shù):整數(shù)、字符串搬味,元祖境氢,

函數(shù)可變的參數(shù):列表、字典局部變量:

在函數(shù)內(nèi)部定義的變量全局變量:能在多個函數(shù)中使用就要使用全局變量了碰纬,使用globa聲明

淺拷貝:淺拷貝是對于一個對象的頂層拷貝

深拷貝:是對于一個對象所有層次的拷貝

Is與==的區(qū)別:is是對比地址,==是對比值

迭代器和生成器:一邊循環(huán)一邊計算的機(jī)制叫做生成器萍聊,可以通過next()函數(shù)調(diào)用的叫做迭代器,迭代器和生成器都可以用for循環(huán)遍歷出來里面的值?

閉包:閉包的特點提高了代碼的可重復(fù)使用性

1悦析、必須有一個內(nèi)嵌函數(shù)

2寿桨、外部函數(shù)必須返回內(nèi)嵌函數(shù)——必須返回那個內(nèi)部函數(shù)

3、外部函數(shù)的返回值必須是內(nèi)嵌函數(shù)

?lambda函數(shù):是一個匿名函數(shù)强戴,一般函數(shù)作為參數(shù)牛隅,只調(diào)用一次,就可以簡寫面向?qū)ο竺嫦驅(qū)ο蟮睦斫猓?/p>

面向?qū)ο笫且环N設(shè)計思想符合人們的思考習(xí)慣

把執(zhí)行者變?yōu)橹笓]者

簡化功能酌泰、把復(fù)雜的簡單化

面向過程:根據(jù)業(yè)務(wù)邏輯從上往下寫的代碼媒佣、強(qiáng)調(diào)的是過程與步驟

面向?qū)ο螅簩?shù)據(jù)和函數(shù)綁定到一起進(jìn)行封裝使用,減少了代碼的重復(fù)使用

裝飾器:經(jīng)常被用于有切面需求的場景陵刹,較為經(jīng)典的有插入日志默伍、性能測試、事務(wù)處理等衰琐。概括就是為已存在的對象添加新的功能也糊,在不改變原來的代碼

新式類和經(jīng)典類的區(qū)別:新式類是在創(chuàng)建中繼承內(nèi)置的object對象、經(jīng)典類是直接聲明的

面向?qū)ο蟮奶卣鳎悍庋b羡宙、繼承狸剃、多態(tài)封裝:類是一種封裝,將屬性和方法封裝狗热。

函數(shù)也是一種封裝钞馁,將具有一定共的邏輯代碼封裝到一個函數(shù)中,使用的時候調(diào)用即可提高代碼的擴(kuò)展性

繼承:將公共的(共性的)屬性和方法放在父類中匿刮,子類只關(guān)注自己特有的屬性和方法僧凰。提高代碼的擴(kuò)展性。

多態(tài):

1熟丸、python支持多態(tài)训措,python是一個弱類型,本身一個變量名,可以存儲任何類型的值绩鸣,可以理解為多種形態(tài)

2怀大、python不支持多態(tài),多態(tài)本身是用于強(qiáng)類型語言的呀闻,python是一個弱類型叉寂,所以不支持多態(tài)類與對象的理解:類是對象的描述、對象是類的具體體現(xiàn)

類變量和實例變量:類變量是給類使用的變量总珠,實例變量是給實例使用的變量元類是用來創(chuàng)建類的東西屏鳍,

設(shè)計模式的六大原則: 單一原則、里氏替換原則局服、依賴倒置原則钓瞭、接口隔離原則、迪米特原則淫奔、開閉原則幾個常用的設(shè)計模式:裝飾器模式山涡、單例模式、工廠模式唆迁、原型模式鸭丛、外觀模式?網(wǎng)絡(luò)編程UDP:是一個無連接的簡單的面向數(shù)據(jù)報的運(yùn)輸層協(xié)議

UDP:不提供可靠性,只負(fù)責(zé)傳送數(shù)據(jù)唐责,并不能保證對面能不能接受鳞溉,傳輸速度快網(wǎng)絡(luò)

四層協(xié)議:應(yīng)用層、傳輸層鼠哥、網(wǎng)絡(luò)層熟菲、網(wǎng)絡(luò)接入層網(wǎng)絡(luò)

七層協(xié)議:應(yīng)用層、表示層朴恳、會話層抄罕、傳輸層、網(wǎng)絡(luò)層于颖、數(shù)據(jù)鏈路層呆贿、物理層

TCP:需要建立連接才能進(jìn)行數(shù)據(jù)的傳輸

TCP三次握手:是客戶端與服務(wù)器建立連接的請求,由客服端發(fā)起

TCP四次揮手:是客戶端與服務(wù)器斷開連接發(fā)送的請求森渐,也是由客戶端發(fā)起的

TCP中的長鏈接:可以省去繁瑣的TCP建立與斷開做入、給客戶一個良好的體驗環(huán)境

TCP中的短鏈接:則需要不停的斷開與鏈接可以減少服務(wù)器的壓力,但是客戶體驗感極差

HTTP:是超文本傳輸協(xié)議的縮寫章母、是一個基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)母蛛、是一個應(yīng)用層協(xié)議、永遠(yuǎn)都是客戶端發(fā)起請求的

TCP與HTTP的區(qū)別:TPC/IP協(xié)議是傳輸層協(xié)議乳怎,主要解決數(shù)據(jù)如何在網(wǎng)絡(luò)中傳輸,而HTTP是應(yīng)用層協(xié)議,主要解決如何包裝數(shù)據(jù)

HTTPS:是以安全為目的的HTTP通道蚪缀,在HTTP上進(jìn)行了數(shù)據(jù)的加密系統(tǒng)編程

同步:同時訪問同一資源秫逝,等待前一個資源訪問結(jié)束后下一個訪問才能繼續(xù)進(jìn)行訪問,浪費(fèi)時間询枚,效率低

異步:在訪問資源時后一個程序不用等待前一個程序結(jié)束后執(zhí)行违帆,可以同時進(jìn)行多個線程的運(yùn)行,從而實現(xiàn)多進(jìn)行的操作

進(jìn)程:進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨(dú)立單位.

線程:線程是進(jìn)程的一個實體,是CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位.線程自己基本上不擁有系統(tǒng)資源金蜀,線程不能夠獨(dú)立執(zhí)行刷后,必須依存在進(jìn)程中線程

全局鎖:為了保證線程安全而采取的獨(dú)立線程運(yùn)行的限制,說白了就是一個核只能在同一時間運(yùn)行一個線程

協(xié)程:協(xié)程是進(jìn)程和線程的升級版,進(jìn)程和線程都面臨著內(nèi)核態(tài)和用戶態(tài)的切換問題而耗費(fèi)許多切換時間,而協(xié)程就是用戶自己控制切換的時機(jī),不再需要陷入系統(tǒng)的內(nèi)核態(tài)

Cookie儲存在客戶端,用于客戶會話跟蹤渊抄,不安全

Session儲存在服務(wù)端尝胆,跟蹤會話,安全

數(shù)據(jù)庫

操作事物:是指作為單個邏輯工作單元執(zhí)行的一系列操作护桦,要么完全執(zhí)行含衔,要么就不執(zhí)行

索引:索引是對數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu),使用索引可快速訪問數(shù)據(jù)庫表中的特定信息

悲觀鎖:假定會發(fā)生并發(fā)沖突二庵,屏蔽一切可能違反數(shù)據(jù)完整性的操作

樂觀鎖:假設(shè)不會發(fā)生并發(fā)沖突贪染,只在提交操作時檢查是否違反數(shù)據(jù)完整性

爬蟲編程

了解爬蟲:是通過程序的方式,自動采集數(shù)據(jù)催享;程序操作比自然人的操作效率高出很多很多倍

反爬蟲機(jī)制:請求認(rèn)證杭隙、用戶行為認(rèn)證、檢測結(jié)果處理

如何應(yīng)對反爬蟲機(jī)制:User-agent偽造因妙、通過隨機(jī)休眠時間寺渗、代理IP

動態(tài)加載:Ajax是與在不重新加載整個頁面的情況下,與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁的技術(shù)

爬蟲的分類:

?通用爬蟲兰迫、 捜索引擎抓取系統(tǒng)的重要的組成部分信殊,主要是將互聯(lián)網(wǎng)上的網(wǎng)頁下載到本地

聚焦爬蟲、針對某種內(nèi)容的爬蟲汁果,是一種面向需求是的爬蟲是大部分程序員用的

累積爬蟲涡拘、

增量爬蟲、累積式抓取是指從某一個時間點開始据德,通過遍歷的方式抓取系統(tǒng)所能允許存儲和處理的所有網(wǎng)頁?

scrapy五個模塊:spider爬蟲模塊鳄乏,engin引擎模塊,調(diào)度模塊棘利,download下載模塊 pipliene管道模塊橱野、下載器中間件、爬蟲中間件

引擎(Scrapy):用來處理整個系統(tǒng)的數(shù)據(jù)流處理, 觸發(fā)事務(wù)(框架核心)

調(diào)度器(Scheduler):用來接受引擎發(fā)過來的請求, 壓入隊列中, 并在引擎再次請求的時候返回. 可以想像成一個URL(抓取網(wǎng)頁的網(wǎng)址或者說是鏈接)的優(yōu)先隊列, 由它來決定下一個要抓取的網(wǎng)址是什么, 同時去除重復(fù)的網(wǎng)址

下載器(Downloader):用于下載網(wǎng)頁內(nèi)容, 并將網(wǎng)頁內(nèi)容返回給蜘蛛(Scrapy下載器是建立在twisted這個高效的異步模型上的)

爬蟲(Spiders):爬蟲是主要干活的, 用于從特定的網(wǎng)頁中提取自己需要的信息, 即所謂的實體(Item)善玫。用戶也可以從中提取出鏈接,讓Scrapy繼續(xù)抓取下一個頁面

項目管道(Pipeline):負(fù)責(zé)處理爬蟲從網(wǎng)頁中抽取的實體水援,主要的功能是持久化實體、驗證實體的有效性、清除不需要的信息蜗元。當(dāng)頁面被爬蟲解析后或渤,將被發(fā)送到項目管道,并經(jīng)過幾個特定的次序處理數(shù)據(jù)奕扣。

下載器中間件(Downloader Middlewares):位于Scrapy引擎和下載器之間的框架薪鹦,主要是處理Scrapy引擎與下載器之間的請求及響應(yīng)。

爬蟲中間件(Spider Middlewares):介于Scrapy引擎和爬蟲之間的框架惯豆,主要工作是處理蜘蛛的響應(yīng)輸入和請求輸出池磁。

調(diào)度中間件(Scheduler Middewares):介于Scrapy引擎和調(diào)度之間的中間件,從Scrapy引擎發(fā)送到調(diào)度的請求和響應(yīng)

下載中間件與爬蟲中間件的區(qū)別:下載中間件主要是處理Scrapy引擎與下載器之間的請求及響應(yīng)楷兽,爬蟲中間件主要用于爬蟲的響應(yīng)輸入與請求輸出地熄。

?Scrapy具體運(yùn)行流程:

1、引擎從調(diào)度器中取出一個鏈接(URL)用于接下來的抓取

2拄养、引擎把URL封裝成一個請求(Request)傳給下載器

3离斩、下載器把資源下載下來,并封裝成應(yīng)答包(Response)

4瘪匿、爬蟲解析Response

5跛梗、解析出實體(Item),則交給實體管道進(jìn)行進(jìn)一步的處理6、解析出的是鏈接(URL),則把URL交給調(diào)度器等待抓取?

我對scrapy的理解:爬蟲模塊將要爬取的URL交給引擎模塊處理棋弥,引擎模塊處理完后將目標(biāo)地址交給調(diào)度模塊核偿,調(diào)度模塊通過將要下載的數(shù)據(jù)請求交給下載模塊,下載模接收到調(diào)度模塊發(fā)來的下載請求開始下載請求數(shù)據(jù)顽染,將請求數(shù)據(jù)交給爬蟲模塊漾岳,爬蟲模塊經(jīng)過分析后將有用的數(shù)據(jù)交給管道模塊進(jìn)行篩選,將有效的數(shù)據(jù)放入到數(shù)據(jù)庫中粉寞,如果需要繼續(xù)爬取重復(fù)上面的操作Scrapy-redis模塊:多了一個redis模塊尼荆,用于存放URL的列表,調(diào)度模塊換成了分布式調(diào)度器唧垦,Scrapy-redis比scrapy多了個redis捅儒,重復(fù)上面的到爬蟲模塊的時候,爬蟲模塊將需要下載的URL以字典的形式放入到了redis數(shù)據(jù)庫中振亮,然后可以用不同主機(jī)同時連接redis用過scrapy-redis特殊的分布式調(diào)度器進(jìn)行調(diào)度巧还,從而實現(xiàn)分布式爬蟲?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市坊秸,隨后出現(xiàn)的幾起案子麸祷,更是在濱河造成了極大的恐慌,老刑警劉巖褒搔,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阶牍,死亡現(xiàn)場離奇詭異喷面,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)荸恕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進(jìn)店門乖酬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來死相,“玉大人融求,你說我怎么就攤上這事∷愦椋” “怎么了生宛?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長肮柜。 經(jīng)常有香客問我陷舅,道長,這世上最難降的妖魔是什么审洞? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任莱睁,我火速辦了婚禮,結(jié)果婚禮上芒澜,老公的妹妹穿的比我還像新娘仰剿。我一直安慰自己,他們只是感情好痴晦,可當(dāng)我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布南吮。 她就那樣靜靜地躺著,像睡著了一般誊酌。 火紅的嫁衣襯著肌膚如雪部凑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天碧浊,我揣著相機(jī)與錄音涂邀,去河邊找鬼。 笑死箱锐,一個胖子當(dāng)著我的面吹牛比勉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瑞躺,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼敷搪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了幢哨?” 一聲冷哼從身側(cè)響起赡勘,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎捞镰,沒想到半個月后闸与,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體毙替,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年践樱,在試婚紗的時候發(fā)現(xiàn)自己被綠了厂画。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡拷邢,死狀恐怖袱院,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情瞭稼,我是刑警寧澤忽洛,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站环肘,受9級特大地震影響欲虚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜悔雹,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一复哆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧腌零,春花似錦梯找、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至饰躲,卻和暖如春牙咏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嘹裂。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工妄壶, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人寄狼。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓丁寄,卻偏偏與公主長得像,于是被迫代替她去往敵國和親泊愧。 傳聞我的和親對象是個殘疾皇子伊磺,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容

  • scrapy學(xué)習(xí)筆記(有示例版) 我的博客 scrapy學(xué)習(xí)筆記1.使用scrapy1.1創(chuàng)建工程1.2創(chuàng)建爬蟲模...
    陳思煜閱讀 12,713評論 4 46
  • 看思念播種生根發(fā)芽長葉開花,如藤蔓在記憶的窗亂爬删咱。 看素指輕撥細(xì)撫柔綰誰的發(fā)屑埋,如流年中逝走的沙。 我深知你不會停下...
    葉辭木閱讀 254評論 0 0
  • 幾個月前续崖,一個教分布式系統(tǒng)的教授開玩笑地跟我說,現(xiàn)在風(fēng)口都是AI了团搞,啥時候輪得上計算機(jī)系統(tǒng)严望?現(xiàn)在看來,這個風(fēng)口真的...
    DanqIO閱讀 612評論 2 3
  • 每年五月的第二個周日被定為母親節(jié)逻恐,因為是休息天像吻,今天剛好又是天氣晴朗,俺家閨女陪著我和樂兒山巴隊員一起去建德...
    五月的荷閱讀 306評論 17 16