手把手教你用Python實現(xiàn)分布式爬蟲(五) - scrapy知乎問答網(wǎng)站爬取

1 session與cookie

首先要理解session和cookie的區(qū)別别厘,這是理解模擬登錄和網(wǎng)站交互的基礎(chǔ)怎棱。
cookie是瀏覽器支持的本地存儲方式方淤,是以dict鍵值對的方式存儲的,在瀏覽器文件中是文本的形式蹄殃,瀏覽器會對這個文本進(jìn)行解析。

Http本身是一種無狀態(tài)協(xié)議你踩,服務(wù)器在接收到瀏覽器的請求之后诅岩,直接返回內(nèi)容給瀏覽器讳苦,不管瀏覽器是誰請求的。比如瀏覽新聞的網(wǎng)站吩谦,不在乎是誰發(fā)起的瀏覽請求鸳谜。但是對于像淘寶這種需要記住請求是由哪個對象發(fā)起的時候,無狀態(tài)協(xié)議就不能做到了式廷。
有狀態(tài)請求如下:

cookie的作用就是在瀏覽器A訪問服務(wù)器的時候咐扭,就給這個A一個id,瀏覽器會將這個id保存到本地滑废,cookie中蝗肪,后來的請求都會帶著這個id,瀏覽器就會知道是哪個對象蠕趁。瀏覽器為了安全性薛闪,cookie存儲是有很多要求的,比如服務(wù)器A傳過來的cookie是放在服務(wù)器A的域之下的俺陋,是不能跨域訪問的豁延,這是一種安全機制。

  • 當(dāng)你使用瀏覽器訪問一個網(wǎng)站的時候腊状,可能就會返回cookie內(nèi)容诱咏,如果將cookie清空,再次訪問缴挖,還是有信息傳回來袋狞,所以說,cookie是服務(wù)器傳給瀏覽器的醇疼,并且保存在本地


  • 即使清空,刷新后還是會生成


比如用處就是硕并,當(dāng)一個用戶用登錄名密碼登陸后,服務(wù)器將這些信息作為cookie返回了秧荆,下一次登錄的時候就可以從本地自動獲取信息進(jìn)行登錄倔毙,不需要再輸用戶名和密碼了。但是乙濒,同時也就出現(xiàn)了安全隱患陕赃,只要有人拿著電腦,就能從本地cookie中查看信息瀏覽記錄等颁股。
有狀態(tài)請求中么库,第一次請求后發(fā)現(xiàn)沒有id,服務(wù)器就會分配一個id甘有,這個id可以是userid诉儒,也可以是任意一段隨機的字符串,可以叫做sessionid亏掀。每個框架生成session的機制是不一樣的忱反,
為了解決cookie的泄露隱患泛释,就產(chǎn)生了session,比如說用戶注冊登錄之后温算,根據(jù)它的用戶名和密碼名生成sessionid怜校,并且將這個id發(fā)給用戶,瀏覽器將這個sessionid存在cookie中注竿,然后再次請求服務(wù)器的時候茄茁,服務(wù)器就知道是誰在請求,取出這個用戶對應(yīng)的信息巩割。

2 cookie與session的主要區(qū)別

  • cookie是第一次打開瀏覽器返回信息裙顽,關(guān)閉了瀏覽器下一次再打開瀏覽器時可以攜帶從本地cookie中獲取的信息,從而知道是同一個瀏覽器喂分。而session是在一次打開瀏覽器之后的連續(xù)操作中锦庸,通過服務(wù)器給了指定的會話id,必須每次訪問網(wǎng)址時都攜帶這個sessionid蒲祈,服務(wù)器才知道這個上一個操作是同一個人在完成甘萧。
  • cookie是需要去本地獲取,session是會話過程中自動攜帶的梆掸。
  • cookie是存放在客戶端的扬卷,session是存在服務(wù)器端的。

服務(wù)器識別同一個操作對象的原理

服務(wù)器中可能有一張session表來記錄訪問的對象酸钦,有session_id怪得,session_data,以及過期時間卑硫,如果當(dāng)前沒有瀏覽器正在訪問這個網(wǎng)站徒恋,那么session表就為空。如果有賬號登錄成功欢伏,這個表中就會有一條記錄入挣,有服務(wù)器給用戶返回的id,有用戶的加密后的數(shù)據(jù)等硝拧。這個sessionid會返回給瀏覽器径筏,保存在cookie當(dāng)中,后面瀏覽器在對這個網(wǎng)站的頁面進(jìn)行訪問的時候都會帶著sessionid障陶,然后服務(wù)器就不需要知道你的用戶名和密碼滋恬,就知道是哪個用戶了。盡管sessionid放在cookie中雖然有過期時間抱究,但是也不安全的恢氯,壞人獲取了sessionid就能瀏覽你的信息了,可是相對于cookie中的賬號名密碼這種而言,還是安全的多酿雪,至少需要用sessionid模擬登錄又或者必須會盜用sessionid遏暴。所以,瀏覽網(wǎng)站最后需要退出登錄指黎,就會清空sessionid信息了。

ssesion技術(shù)

本身有兩部分
知道瀏覽器兩次訪問是同一個人州丹,這是用cookie 保存sessionid實現(xiàn)的
在服務(wù)端的session對象的內(nèi)容醋安,可以訪問到,這些變量信息時存在服務(wù)器的中的墓毒。

3 selenium模擬知乎登錄

  • 常見HTTPcode


  • 安裝requests庫


    pip3 install requests
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吓揪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子所计,更是在濱河造成了極大的恐慌柠辞,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件主胧,死亡現(xiàn)場離奇詭異叭首,居然都是意外死亡,警方通過查閱死者的電腦和手機踪栋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進(jìn)店門焙格,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人夷都,你說我怎么就攤上這事眷唉。” “怎么了囤官?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵冬阳,是天一觀的道長。 經(jīng)常有香客問我党饮,道長肝陪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任劫谅,我火速辦了婚禮见坑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捏检。我一直安慰自己荞驴,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布贯城。 她就那樣靜靜地躺著熊楼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鲫骗,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天策治,我揣著相機與錄音搁廓,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛悔政,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弄痹,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼罩引,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了排苍?” 一聲冷哼從身側(cè)響起沦寂,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎淘衙,沒想到半個月后传藏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡彤守,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年毯侦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片遗增。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡叫惊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出做修,到底是詐尸還是另有隱情霍狰,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布饰及,位于F島的核電站蔗坯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏燎含。R本人自食惡果不足惜宾濒,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望屏箍。 院中可真熱鬧绘梦,春花似錦、人聲如沸赴魁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽颖御。三九已至榄棵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疹鳄。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工拧略, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瘪弓。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓垫蛆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親腺怯。 傳聞我的和親對象是個殘疾皇子月褥,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,654評論 2 354