Because of the need of social network analysis research, we need to get the friend list data of the designated users, so call the Sina Weibo API for practice. Although Sina Weibo open platform interface upgrade can only get the current logged-on user's partial friend list, unable to meet the research needs, but still with this record first call API crawl data experience.
1. Create an application under the Weibo open platform (http://open.weibo.com/) to get the app Key and app Secret
2. Under Application information, in the Advanced Information section, set the authorization callback page to: https://api.weibo.com/oauth2/default.html, and set the cancel authorization callback page to: https://api.weibo.com /oauth2/default.html.
3. Download the Sina Weibo python SDK (http://github.liaoxuefeng.com/sinaweibopy/) and extract it into the current folder Sinaweibopy.
4. Open Pycharm, create a new project crawl, and create a new Python File named Weibo_ api.py, at the same time, open workspace, copy the weibo.py under the Sinaweibopy folder to the workspace folder under crawl.
5. The Python code to crawl the buddy list is as follows.
#!/usr/bin/env python
#-*-coding:utf-8-*-
apiclient
webbrowser# Python's built-in package
App_key = ' ************* ' #注意替换这里为自己申请的App信息
app_secret = ' **************************
' Callback_url = ' https://api.weibo.com/oauth2/default.html ' #回调授权页面
#利用官方微博SDK
client = apiclient (app_key= App_key, App_secret=app_secret, Redirect_uri=callback_url)
#得到授权页面的url, using WebBrowser to open this URL
URL Client.get_authorize_url ()
url
webbrowser.open_new (URL)
#获取code = subsequent content
' Enter the contents of the code behind the URL and press ENTER: '
code = raw_input ()
r = Client.request_access_token (code)
Access_token = R.access_token # Sina returns token, similar abc123xyz456
expires_in = r.expires_in
# settings get Access_token
client.set _access_token (Access_token, expires_in)
print ' Friends list: '
Resfollows = []
nextcursor =-1
nextcursor!= 0:
followers = client.get.friendships__friends (uid= ' ********* ', count=200, cursor=nextcursor)
nextcursor = followers["Next_cursor"]
followers["users":
FID = follower[' id ']
name = follower[' Screen_name ']
text = "Friends---" + str (FID) + ": "+ name
Text = Text.encode (" Utf-8 ")
print(text)
resfollows.append (follower[" Screen_ Name "], follower[" gender "])
len (resfollows)
Attention:
API interface Information Reference API documentation (Http://open.weibo.com/wiki/%E5%BE%AE%E5%8D%9AAPI), for example, in Friendships/friends, there are three ways to invoke:
1. Client.get.friendships__friends (), replace "/" with Two "_", and use Get or post, depending on whether the request is post or get;
2. For a Get method, the call can be omitted from the take, that is, Client.friendships__friends ()
3. Client.friendships__friends.get (), replace "/" in the API with ".", and finally specify whether to get or post.
Friendships/friends parameter Description:
parameter UID and Screen_name both must choose one, and can only choose one;
after the interface upgrade: UID and screen_name only for the current authorized user;
Only returns users who also authorize the application, the unauthorized user will not return,
such as a call count of 50, but only 10 of the users who authorize the application will actually return 10; Use the
official Mobile SDK call to return 30% more users than the same authorized application. The total limit is 500.