當前位置:首頁 » 編程語言 » python調用新浪api

python調用新浪api

發布時間: 2022-08-11 02:48:52

1. 如何通過python調用新浪微博的API來爬取數據

1:安裝python(這個不多說啦)
2:下載新浪微博SDK的python包,解壓為weibopy目錄

3:申請AppKey,

流程:

1:通過oAuth認證
按我的理解簡化如下:
用戶在新浪微博給的頁面輸入賬號密碼,然後微博給應用一個PIN碼,這樣應用通過PIN碼才有許可權訪問該用戶的信息,而應用在整個過程中是接觸不到密碼的,所以用戶覺得很安全,後果很滿意
2:獲得認證之後,就可以使用微博SDK提供的API獲得信息啦
3:如果想設計web或者客戶端應用的話,那就繼續加個GUI好啦(未完成)

代碼:

#!/usr/bin/python

import webbrowser

from weibopy.auth import OAuthHandler
from weibopy.api import API

AppKey = '2525355147'
AppSecret = ''

my_auth = OAuthHandler(AppKey , AppSecret)
webbrowser.open(my_auth.get_authorization_url())
verifier = raw_input('PIN: ').strip()
my_auth.get_access_token(verifier)

my_api = API(my_auth)
for comment in my_api.mentions():
object = comment
id = object.__getattribute__("id")
text = object.__getattribute__("text")
print str(id) + " : " + text

2. 怎麼用python實現新浪微博的登陸與自動評論

新浪有api也有各種sdk,自己去看一下介面,沒有太大問題就能做出來。

3. API編程抓取新浪微博、大眾點評等方面的數據,編寫一套工具,抓取一類數據,用python語言編寫爬蟲

這個不難實現
但是你如果要可持續的話
這個幾乎是不可能實現的

鬼知道人家網頁什麼時候更新
所以這個自己做起來不會難
更新了自己可以隨時維護

4. 使用python或者java利用新浪微博開放平台提取好友的微博內容

多了不說,自己去看下新浪微博開放平台API,按照那個API內容,20行以內得到結果,然後自己再改下格式就可以了。

5. 怎樣用python爬新浪微博大V所有數據

先上結論,通過公開的api如果想爬到某大v的所有數據,需要滿足以下兩個條件:
1、在你的爬蟲開始運行時,該大v的所有微博發布量沒有超過回溯查詢的上限,新浪是2000,twitter是3200。
2、爬蟲程序必須不間斷運行。
新浪微博的api基本完全照搬twitter,其中介面的參數特性與底層的Nosql密不可分,建議先看點Nosql資料庫的設計理念有助於更好的理解api設計。
一般來說,如果決定爬某個大v,第一步先試獲取該用戶的基本信息,中間會包含一條最新的status,記下其中的id號作為基準,命名為baseId。
介面中最重要的兩個參數:
since_id:返回ID比since_id大的微博(即比since_id時間晚的微博),默認為0。
max_id:返回ID小於或等於max_id的微博,默認為0。
出於各種原因,獲取statuses的介面,固定為按id降序排列(scan_index_forward=false),即最新的statuses返回在前。假設該微博第一天上線,就一個用戶,發了一百條,id是1到100。而你在該用戶發了第50條的時候開始運行的爬蟲,即baseId=50。
假設按每次獲取10條歷史數據遞歸,先將max_id設為baseId,獲取該用戶id為41-50的微博,再將max_id設為41重復循環,直到返回微博數量為1或0。這步沒有問題。
獲取用戶最新的statuses就有些蛋疼了,since_id=50,同樣獲取10條數據,返回的並不是id值為51-60的數據,而是100-91的數據。簡單說就是你沒法從since_id逐步更新到用戶當前status,而是得一口氣從用戶當前status更新到上次爬蟲運行時得到的最後一條status。假設你的爬蟲一個月才運行一次,該用戶在這期間發了2300條微博,根據限制你只能更新2000條,這其中最老的300條在你的系統內就會出現「斷檔」。
最後一條,以上只針對公開的api,stackoverflow上twitter
API可以申請許可權突破數量限制和更改排序機制,微博也應該有類似機制。

6. python調用微博api的place介面出現10014錯誤,怎麼解決

一:獲取app-key 和 app-secret

使用自己的微博賬號登錄微博開放平台(http://open.weibo.com/),在微博開放中心下「創建應用」創建一個應用,應用信息那些隨便填,填寫完畢後,不需要提交審核,需要的只是那個app-key和app-secret

二:設置授權回調頁


7. 怎麼用python的sdk調用新浪微博API來提取給定ID用戶的微博信息

你仔細看一下新浪微博的幫助。按ID搜索微博內容似乎是被禁止的。即使有也是受限的。

事先需要申請一個開發者的ID,然後才能用這個ID登陸,繼而進行後續的操作。

8. 如何用python調用新浪微博的api

與Twitter相比,新浪微博做得更好的地方是直接提供了SDK(Twitter貌似只有第三方的SDK)。而我自然是用Python SDK,一個只有幾十k的玩意。

接著進入exanples文件夾(新浪這英文水平,不提了…),打開oauthSetTokenUpdate.py文件就是一個很標準的例子了。

於是照著寫了一個:

view sourceprint?01 # -*- coding: utf-8 -*-

02

03 from weibopy.auth import OAuthHandler

04 from weibopy.api import API

05

06

07 consumer_key= '應用的key'

08 consumer_secret ='應用的App Secret'

09

10 auth = OAuthHandler(consumer_key, consumer_secret)

11 auth_url = auth.get_authorization_url()

12 print 'Please authorize: ' + auth_url

13 verifier = raw_input('PIN: ').strip()

14 auth.get_access_token(verifier)

15 api = API(auth)

16

17 status = api.update_status(status='hello world', lat='12.3', long='45.6') # 注意status必須是UTF-8編碼的字元串,經緯度是可以不寫的

18 print status.id

19 print status.text

注意consumer_key和consumer_secret需要創建一個應用才能拿到。

運行這個程序,你會發現它可恥地失敗了,報出一條語法錯誤:

File 'C:\Documents and Settings\Administrator\Desktop\sinatpy\weibopy\api.py',
line 197 )(self, *args, post_data=post_data, headers=headers)
^SyntaxError: invalid syntax於是打開weibopy\api.py這個文件,把197行改成:

)(self, post_data=post_data, headers=headers, *args)
再運行這個程序就會提示一個URL鏈接,在瀏覽器里打開這個鏈接,並且給予訪問許可權,就會拿到一串PIN碼。把這個PIN碼輸上去,就會發送一條推了,並且還會顯示用戶的Access token key和Access token secret。
可以看到整個過程是很簡單的:

用你的consumer_key和consumer_secret創建一個OAuthHandler對象auth。
告訴用戶訪問auth.get_authorization_url(),並讓用戶授權這個應用。
拿到用戶的PIN碼,用auth.get_access_token()拿到用戶的Access token key和Access token secret。
用auth創建一個API對象api。
調用api的方法,例如update_status()就是發推。詳細說明可以看API文檔。
當然,每次都要求用戶輸入PIN碼也太傻了,所以在用auth.get_access_token()拿到Access token key和Access token secret之後,就可以直接用它們來創建API對象了:

view sourceprint?01 # -*- coding: utf-8 -*-

02

03 from weibopy.auth import OAuthHandler

04 from weibopy.api import API

05

06

07 consumer_key= '應用的key'

08 consumer_secret ='應用的App Secret'

09 token = '用戶的Access token key'

10 tokenSecret = '用戶的Access token secret'

11

12 auth = OAuthHandler(consumer_key, consumer_secret)

13 auth.setToken(token, tokenSecret)

14 api = API(auth)

15

16 status = api.update_status(status='搞定收工~')

最後想說的是新浪微博的應用審核真麻煩,沒通過審核的想show下自己個性化的應用名都不行。罷了,反正我也只是玩玩而已~

看看有沒有用

熱點內容
界面像電腦一樣的伺服器 發布:2025-01-21 06:29:52 瀏覽:989
匿名祝福源碼 發布:2025-01-21 06:29:13 瀏覽:348
雲識別系統登陸密碼是多少 發布:2025-01-21 06:23:39 瀏覽:368
stl源碼剖析中文 發布:2025-01-21 06:14:17 瀏覽:344
我的世界手機版為什麼連不上伺服器 發布:2025-01-21 06:14:17 瀏覽:453
壓縮機的性能參數 發布:2025-01-21 06:10:34 瀏覽:607
2014年預演算法修訂歷時20年 發布:2025-01-21 06:05:46 瀏覽:191
linux切換到root用戶 發布:2025-01-21 06:05:38 瀏覽:516
php存在文件 發布:2025-01-21 06:04:51 瀏覽:171
故鄉的密碼標題運用了什麼手法 發布:2025-01-21 06:00:20 瀏覽:724