1.首先在瀏覽器中進入WAP版微博的網址,由於手機版微博的內容較爲簡潔,方便後續使用正則表達式或者beautifulSoup等工具對所須要內容進行過濾html
https://login.weibo.cn/login/
2.人工輸入帳號、密碼、驗證字符,最後最重要的是勾選(記住登陸狀態)python
3.使用Wireshark工具或者火狐的HttpFox插件對GET請求進行分析,須要是取得GET請求中的Cookie信息正則表達式
在未登陸新浪微博的狀況下,是能夠經過網址查看一個用戶的首頁的,可是不能進一步查看該用戶的關注和粉絲等信息,若是點擊關注和粉絲,就會重定向回到登陸頁面api
好比使用下面函數對某個用戶 http://weibo.cn/XXXXXX/fans 的粉絲信息進行訪問,會重定向回登陸頁面瀏覽器
#獲取網頁函數 def getHtml(url,user_agent="wswp",num_retries=2): #下載網頁,若是下載失敗從新下載兩次 print '開始下載網頁:',url # headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0'} headers = {"User-agent":user_agent} request = urllib2.Request(url,headers=headers) #request請求包 try: html = urllib2.urlopen(request).read() #GET請求 except urllib2.URLError as e: print "下載失敗:",e.reason html = None if num_retries > 0: if hasattr(e,'code') and 500 <= e.code < 600: return getHtml(url,num_retries-1) return html
因此須要在請求的包中的headers中加入Cookie信息,函數
在勾選了記住登陸狀態以後,點擊關注或者粉絲按鈕,發出GET請求,並使用wireshark對這個GET請求進行抓包工具
能夠抓到這個GET請求url
右鍵Follow TCP Stream,圖片中打碼的部分就Cookie信息spa
4.加入Cookie信息,從新獲取網頁插件
有了Cookie信息,就能夠對Header信息就行修改
#獲取網頁函數 def getHtml(url,user_agent="wswp",num_retries=2): #下載網頁,若是下載失敗從新下載兩次 print '開始下載網頁:',url # headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0'} headers = {"User-agent":user_agent,"Cookie":"_T_WM=XXXXXXXX; SUB=XXXXXXXX; gsid_CTandWM=XXXXXXXXX"} request = urllib2.Request(url,headers=headers) #request請求包 try: html = urllib2.urlopen(request).read() #GET請求 except urllib2.URLError as e: print "下載失敗:",e.reason html = None if num_retries > 0: if hasattr(e,'code') and 500 <= e.code < 600: return getHtml(url,num_retries-1) return html
import urllib2 if __name__ == '__main__': URL = 'http://weibo.cn/XXXXXX/fans' #URL替代 html = getHtml(URL) print html
成功訪問到某個用戶的粉絲信息
試一試訪問一下最近一年很火的papi醬的微博,她的我的信息頁面
import urllib2 if __name__ == '__main__': URL = 'http://weibo.cn/2714280233/info' #URL替代 html = getHtml(URL) print html