之前爬蟲用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,這樣下次就不須要從新發送登陸請求了。
完整代碼以下: