首先,看看sdk中獲取關注列表的函式:
statuses/friends
獲取使用者關注列表及每個關注使用者的最新一條微博,返回結果按關注時間倒序排列,最新關注的使用者排在最前面。
必選型別及範圍
說明source
true
string
:idfalse
int64/string
使用者id(int64)或者暱稱(string)。該引數為乙個rest風格引數。呼叫示例見注意事項
user_id
false
int64
使用者id,主要是用來區分使用者id跟微博暱稱。當微博暱稱為數字導致和使用者id產生歧義,特別是當微博暱稱和使用者id一樣的時候,建議使用該引數
screen_name
false
string
微博暱稱,主要是用來區分使用者uid跟微博暱稱,當二者一樣而產生歧義的時候,建議使用該引數
cursor
false
intcount
false
int,預設20,最大200
每頁返回的最大記錄數,最大不能超過200,預設為20。
:id, user_id, screen_name 可以任選乙個引數,在3個都不提供的情況下,系統返回當前登入使用者的關注列表
從weibopy\api.py下,可獲取friends函式的原型:api.friends('id', 'user_id', 'screen_name', 'page', 'cursor')
經過試驗,前三個引數只要有乙個就可以。現在,修改下例子中的**examples\getfriends.py:
**一:
view code
deffriends(self,nickname):問題出來了,文件裡說返回結果中會有next_cursor欄位,但是除錯發現timeline的型別不是tuple,而是。這是怎麼回事?total_friends =0
next_cursor =-
1while
next_cursor
!=0:
timeline
=self.api.friends(nickname,'',
'','',next_cursor)
#timeline = self.api.friends()
ifisinstance(timeline, tuple):
next_cursor
=timeline[1]
total_friends
+=len(timeline[0])
forline
intimeline[0]:
self.obj
=line
fid
=self.getatt("id
")name
=self.getatt(
"screen_name")
text ="
friends---"+
str(fid) +"
:"+name
text
=text.encode(
"gbk")
text
else
:next_cursor =0
total_friends
+=len(timeline)
forline
intimeline:
self.obj
=line
fid
=self.getatt("id
")name
=self.getatt(
"screen_name")
text ="
friends---"+
str(fid) +"
:"+name
text
=text.encode(
"gbk")
text
重新除錯,在
timeline處步入,來到如下位置(weibopy\binder.py):=self.api.friends(nickname,'',
'','',next_cursor)
def進入method.execute(),單步執行來到以下**行(weibopy\binder.py):_call(api,
*args,
**kargs):
method
=apimethod(api, args, kargs)
return
method.execute()
#再次步入,可發現如下**(weibopy\parsers.py):parse the response payload
result
=self.api.parser.parse(self, body)
ifisinstance(json, tuple):此時,json的型別不是tuple而是dict,因此,cursors被置為none,因此最後返回的結果中沒有cursors,只有關注列表。這導致函式friend中的迴圈只執行了一次。知道原因就好辦了:json, cursors
=json
else
:cursors
=none
ifmethod.payload_list:
result
=model.parse_list(method.api, json)
else
:result
=model.parse(method.api, json)
ifcursors:
return
result, cursors
else
:return
result
ifisinstance(json, tuple):重新執行**一可獲得使用者的全部關注列表。json, cursors
=json
elif
isinstance(json, dict):if'
next_cursor'in
json:
cursors
=json[
'next_cursor']
else
:cursors
=none
else
:cursors
=none
爬取微博指定使用者的微博內容
使用python3爬取微博指定使用者的內容 import urllib.request import json 定義要爬取的微博大v的微博id id 5866810652 設定 ip proxy addr 192.168.1.101 定義頁面開啟函式 獲取微博主頁的containerid,爬取微博內...
微博爬蟲python 微博爬蟲 python
本文爬取的是m站的微博內容,基於python 2.7 一 微博內容爬取 1.要爬取的微博首頁 2.手機微博是看不到翻頁,是一直往下載入的,但是其json格式的資料仍然以翻頁的形式呈現。3.開啟開發者工具,向下翻頁面,可以在network下的xhr的響應檔案中,找到json檔案的 如 通過分析發現每個...
微博 使用者畫像 微博的使用者畫像是怎樣構建的
1.概述 從使用者模型維度的劃分可以看出,屬性和興趣維度的使用者模型都可以歸入使用者畫像 user profile 的範疇。所謂使用者畫像,簡單來說就是對使用者的資訊進行標籤化。如圖1所示。一方面,標籤化是對使用者資訊進行結構化,方便計算機的識別和處理 另一方面,標籤本身也具有準確性和非二義性,也有...