爬蟲筆記(六) - 關(guān)于 Cookie 的分析(Postman Request Selenium)

本次教程涉及到的軟件包括:

  • Chrome瀏覽器
  • Chrome的插件Postman
  • Python的Request

假設(shè)你已經(jīng)熟悉使用一切,我們直接告訴你結(jié)果:

  • Python的Request
    所有的請(qǐng)求信息在代碼本身舶治,不會(huì)調(diào)用到瀏覽器的Cookie信息稽物,如果請(qǐng)求中需要驗(yàn)證Cookie需要添加到Hearders中
  • Chrome的插件Postman
    每次請(qǐng)求可能會(huì)調(diào)用瀏覽器保存的Cookie搅窿,所以如果想分析Request請(qǐng)求需要攜帶什么Cookie,需要先刪除瀏覽器的Cookie

如果看不懂結(jié)論,可以接下來(lái)的照步驟來(lái)學(xué)習(xí)分析登刺,主要包含幾個(gè)要點(diǎn):

  1. 如何清除瀏覽器的Cookie
  2. Postman快速獲Chrome取瀏覽器產(chǎn)生的請(qǐng)求
  3. Postman分析Headers中需要驗(yàn)證的內(nèi)容(Cookie只是其中之一)
  4. Postman導(dǎo)出Request代碼
  5. Selenium獲取cookie的方法

清理瀏覽器Cookie

Chrome打開某個(gè)網(wǎng)站后你會(huì)看到左上角有一個(gè)小鎖乾翔,點(diǎn)擊后刪除所有Cookie信息爱葵,如下面的GIF所示:


Chrome清理cookie

F12開發(fā)者模式獲取瀏覽器的請(qǐng)求信息

在訪問(wèn)某個(gè)網(wǎng)站過(guò)程中,會(huì)附帶很多請(qǐng)求反浓,包括js钧惧、ajax、api接口的請(qǐng)求等


F12開發(fā)者模式

要點(diǎn):

  • 注意勾選Preserve log勾习,不然每次頁(yè)面刷新浓瞪,記錄會(huì)被刪除
  • 可以嘗試使用Filter那個(gè)框的功能,在Preserve log的最左邊附近

首次登陸和非首次登陸的分析

基本了解刪除Cookie和F12開發(fā)者模式后巧婶,我們來(lái)分析下首次登陸和第二次登陸的區(qū)別
按刪除步驟刪除Cookies后乾颁,關(guān)閉瀏覽器涂乌,再目標(biāo)網(wǎng)站觀察下:


首次訪問(wèn)

要點(diǎn):

  • 小鎖中的Cookie信息又恢復(fù)了(圖中有19個(gè),具體怎么來(lái)有興趣自己可以分析下)
  • Request請(qǐng)求中沒(méi)有Cookie信息英岭,Response回應(yīng)中右Set-cookie的信息
  • 出現(xiàn)了選擇一個(gè)城市(這個(gè)信息是記錄再Cookie中的)

再次提醒:勾選Preserve log后湾盒,再次訪問(wèn)目標(biāo)網(wǎng)站,通過(guò)filter過(guò)濾需要的信息

兩次請(qǐng)求的對(duì)比

要點(diǎn)(對(duì)比兩次請(qǐng)求的區(qū)別):

  • 第一次:Request沒(méi)有cookie诅妹,Response中有Set-cookies
  • 第二次:Request有cookie罚勾,Response沒(méi)有Set-cookies

結(jié)論:我們首次訪問(wèn)網(wǎng)站,網(wǎng)站會(huì)發(fā)一個(gè)set-cookie的回應(yīng)吭狡,讓我們第二次訪問(wèn)的時(shí)候帶上身份信息去請(qǐng)求目標(biāo)網(wǎng)站尖殃,往往很多時(shí)候我們的想要的數(shù)據(jù)不在目標(biāo)網(wǎng)站的首頁(yè),可能是一個(gè)API接口的請(qǐng)求划煮,可能是目標(biāo)網(wǎng)站的某個(gè)子目錄送丰,雖然訪問(wèn)首頁(yè)會(huì)帶一個(gè)set-cookie的回應(yīng)給你,但是非首頁(yè)的請(qǐng)求就沒(méi)有那么友善了弛秋,給你的可能是一個(gè)空回應(yīng)甚至把你的請(qǐng)求拒之門外(往下看會(huì)有分析)

Postman快速獲Chrome取瀏覽器產(chǎn)生的請(qǐng)求

這個(gè)功能是為了快速獲取我們的請(qǐng)求(包括Headers和Cookies)器躏,不需要手動(dòng)到Postman去添,首先我們看看功能按鍵在哪里蟹略,然后將它們開啟(如果不知道軟件在哪里安裝自己Google一下就可以了)登失。


通過(guò)Interceptor獲取請(qǐng)求

要點(diǎn):

  • 圖中標(biāo)識(shí)的兩個(gè)位置記得設(shè)置為on
  • 如果記錄太多影響分析,刪除下歷史記錄

瀏覽器直接訪問(wèn)目標(biāo)網(wǎng)站挖炬,你會(huì)看到所有的請(qǐng)求都會(huì)出現(xiàn)到History的標(biāo)簽中壁畸,通過(guò)篩選按鈕獲取你想要的請(qǐng)求,為了更好分析上面所說(shuō)的攔截問(wèn)題茅茂,我拿了一個(gè)API接口的請(qǐng)求作為本次分析的目標(biāo)捏萍。
這個(gè)鏈接是我多次分析目標(biāo)網(wǎng)站后,發(fā)現(xiàn)每次搜索python工作崗位時(shí)候空闲,瀏覽器向服務(wù)器發(fā)送的一個(gè)請(qǐng)求令杈,Response回應(yīng)中的是崗位的詳細(xì)信息(Json格式)。如圖:

Postman獲取請(qǐng)求分析

要點(diǎn):

  • 使用過(guò)濾獲取到自己想要的網(wǎng)址

Postman分析Headers中需要驗(yàn)證的內(nèi)容

接下來(lái)正式開始碴倾,我做一個(gè)大膽的測(cè)試逗噩,刪掉所有的Headers,看看請(qǐng)求的結(jié)果


刪除Headers

要點(diǎn):

  • 你要相信你的眼睛跌榔,沒(méi)錯(cuò)結(jié)果還是請(qǐng)求成功了

當(dāng)你在懊惱為什么的時(shí)候异雁,我又要來(lái)一個(gè)Gif了
循環(huán)播放的,簡(jiǎn)單說(shuō)下Gif操作步驟和預(yù)期結(jié)果:

  1. 直接訪問(wèn)發(fā)送API請(qǐng)求(成功返回?cái)?shù)據(jù))
  2. 刪除瀏覽器中記錄的Cookies僧须,再次發(fā)送發(fā)送API請(qǐng)求(沒(méi)有數(shù)據(jù)纲刀,或者是攔截網(wǎng)站)
  3. 復(fù)制URL到瀏覽器中,查看結(jié)果(攔截網(wǎng)站)
    仔細(xì)看担平,仔細(xì)看~~~
大膽的嘗試

總結(jié):哈哈示绊,其實(shí)就是一個(gè)簡(jiǎn)單的道理Postman會(huì)使用瀏覽器記錄的Cookie锭部,所以在每次測(cè)試的時(shí)候(包括Postman請(qǐng)求成功以后也會(huì)存到瀏覽器中),先刪除掉瀏覽器的Cookie再做測(cè)試面褐。

另外拌禾,針對(duì)目標(biāo)網(wǎng)站我分析結(jié)果是:多個(gè)網(wǎng)站的分析后,我只會(huì)保留User-AgentCookie這兩個(gè)Headers展哭,最后Cookie驗(yàn)證只需user_trace_token=20170511230425-b1fa946e4c77442498aac65a98153141(授人以魚不如授人以漁湃窍,過(guò)程不詳解,自己去嘗試吧)

Postman導(dǎo)出Request代碼

Postman導(dǎo)出Request代碼

步驟:

  1. Send按鈕下面的那個(gè)Code
  2. 選中Python Requests
  3. 復(fù)制代碼到IDLE中就能使用(前提是分析到對(duì)的Headers)

Selenium獲取cookie的方法

最后付上一段selenum獲取cookie的方法匪傍,詳細(xì)Selenium的使用這里不介紹了~~~

import requests
from selenium import webdriver

driver = webdriver.Chrome() # 指定使用的Webderiver您市,這里使用的是Chrome的
driver.get("https://www.lagou.com") # 目標(biāo)網(wǎng)址

# 獲得cookie信息
# print driver.get_cookies()
# print type(driver.get_cookies())
cookie_tag = driver.get_cookies()[3]["value"] # 這里的代碼可能有問(wèn)題,自己改一下

driver.close() # 關(guān)閉瀏覽器
print cookie_tag
url = "https://www.lagou.com/jobs/positionAjax.json"
querystring = {"city": "廣州", "needAddtionalResult": "false", "kd": "python", "pn": "{0}".format(1)}
headers = {
    'user-agent': "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0",
    'cookie': "user_trace_token={0};".format(cookie_tag)
}
response = requests.request("GET", url, headers=headers, params=querystring)
print response.text

代碼分析:

  • webdriver.Chrome():此處需要下載一個(gè)Chrome的webdriver
  • get_cookies() :獲取到所有的cookies析恢,然后按需提取(代碼中的提取可能有問(wèn)題)

以上都是我的跟人觀點(diǎn)秧饮,如果有不對(duì)映挂,或者有更好的方法,歡迎留言指正~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盗尸,一起剝皮案震驚了整個(gè)濱河市柑船,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泼各,老刑警劉巖鞍时,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異扣蜻,居然都是意外死亡逆巍,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門莽使,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)锐极,“玉大人,你說(shuō)我怎么就攤上這事芳肌×樵伲” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵亿笤,是天一觀的道長(zhǎng)翎迁。 經(jīng)常有香客問(wèn)我,道長(zhǎng)净薛,這世上最難降的妖魔是什么汪榔? 我笑而不...
    開封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮肃拜,結(jié)果婚禮上揍异,老公的妹妹穿的比我還像新娘全陨。我一直安慰自己,他們只是感情好衷掷,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開白布辱姨。 她就那樣靜靜地躺著,像睡著了一般戚嗅。 火紅的嫁衣襯著肌膚如雪雨涛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天懦胞,我揣著相機(jī)與錄音替久,去河邊找鬼。 笑死躏尉,一個(gè)胖子當(dāng)著我的面吹牛蚯根,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播胀糜,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼颅拦,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了教藻?” 一聲冷哼從身側(cè)響起距帅,我...
    開封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎括堤,沒(méi)想到半個(gè)月后碌秸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡悄窃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年讥电,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片轧抗。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡允趟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鸦致,到底是詐尸還是另有隱情潮剪,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布分唾,位于F島的核電站抗碰,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏绽乔。R本人自食惡果不足惜弧蝇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧看疗,春花似錦沙峻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至怖辆,卻和暖如春是复,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背竖螃。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工淑廊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人特咆。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓季惩,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親腻格。 傳聞我的和親對(duì)象是個(gè)殘疾皇子画拾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

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