基於python的request庫,模擬登陸csdn博客

      之前爬蟲用urllib2來實現,也用過scrapy的爬蟲框架,此次試試requests,剛開始用,用起來確實比urllib2好,封裝的更好一些,使用起來簡單方便不少。chrome

安裝requests庫瀏覽器

    最簡便的方法就是使用pip來安裝:pip install requests;若是須要安裝特定版本,則在後面加上版本號便可:pip install requests == 1.9.7,這樣就搞定了。cookie

快速上手的小例子框架

下面說一個最簡單的例子:scrapy

 

第一行,引入requests庫,這是必然的。工具

第二行,經過get方法獲取百度首頁的內容。post

第三行,把返回的response內容,輸出出來。優化

果真很簡單,這樣就能夠發送一個get請求,同理,也可使用requests.post,requests.put,requests.options,requests.head,發送請求。網站

模擬登陸csdnurl

咱們須要其餘的輔助工具

瀏覽器:Firefox

瀏覽器插件:tamper data,firebug

咱們須要tamper data來攔截請求,由於chrome沒有這個功能的插件,因此這個只能使用firefox來作(除了攔截請求chrome沒有,其餘的工做均可以使用chrome)。

分析登陸過程

1.打開登陸頁面

咱們首先打開csdn的登陸頁面:https://passport.csdn.net/account/login?ref=toolbar,這個連接,前面的部分是登陸的網址,問號後面的參數,referer,就是你從哪裏跳過來的,也許是一個頁面跳轉到登陸的,toolbar就是我本身點擊頂部導航欄,而後跳轉到登陸頁面的。

2.清除相關的cookie

爲了清除沒必要要的干擾,咱們先清除掉全部的相關的cookie,這樣方便咱們分析哪些參數是必須的。

3.登陸過程分析

清除了cookie後,咱們刷新一下頁面,https://passport.csdn.net/account/login?ref=toolbar,從新獲取對應的cookie。

而後咱們就開始用tamper data來攔截請求。

咱們點擊start tamper ,在網頁中填寫用戶名和密碼,點擊「登陸」,會發出一個請求,而後tamper data 會攔截下這個請求,詢問咱們是否攔截,點擊tamper,咱們能夠在這個請求提交以前,查看請求的內容,還能夠作刪除。

發送一個登陸表單過去,就登陸成功了。

4.開始模擬登陸

知道登陸過程了,咱們就開始寫登陸的代碼。

至此,登陸就成功了。

5.優化

當你登陸成功後,你會問,我怎麼知道登陸成功了呢?當你試圖去抓取http://write.blog.csdn.net/postlist的內容的時候,你會發現一個403的錯誤,這是爲啥呢?

很簡單,user agent沒有修改,咱們用的是默認的user agent這不是一個正常的用戶,因此被網站拒絕了。咱們加上它就行了:

後話

咱們都知道cookie是有有效期的,在作調試時,每修改一次,就要模擬登陸一次,這樣很差,咱們要保存cookie,這樣下次就不須要從新發送登陸請求了。

完整代碼以下:

相關文章
相關標籤/搜索