python 使用post登錄網易

經過這幾天的學習,手動實驗成功post登錄網易,特做如下記錄:

總體流程如下:

1.抓取登錄是發送的http數據包,分析其內容:


可以看到請求類型爲POST,也可以看到發送的參數,構造數據包如下:

cookie = cookielib.CookieJar()
handler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(handler)
posturl = 'https://reg.163.com/logins.jsp'
headers ={'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0',
           'Referer' : 'http://www.163.com/'}
postdata={"username":"[email protected]",
"password":"XXXXXXXXXXXXX",
"type":"1",
"product":"163",
"savelogin":"0",
"url":"http://www.163.com/special/0077450P/login_frame.html",
"url2":"http://www.163.com/special/0077450P/login_frame.html",
"noRedirect":"1"}
這裏我們使用了cookie,爲的是登錄後可以使用保存在
opener 中的coolie,直接取訪問需要登錄的頁面。

2.數據包構造好後我們就使用urllib2.Reques構造請求對象;

req = urllib2.Request(posturl, data, headers)

3.構造後請求對象後使用response = opener.open(req);獲取迴應體;

登錄成功後我們就可以利用已經獲取的cookie直接訪問 需要登錄後纔可以訪問的頁面了。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章