如何通过python调用新浪微博的API来爬取数据

如何通过python调用新浪微博的API来爬取数据,第1张

1:安装python(这个不多说啦)

2:下载新浪微博SDK的python包,解压为weibopy目录

3:申请AppKey,

流程:

1:通过oAuth认证

按我的理解简化如下:

用户在新浪微博给的页面输入账号密码,然后微博给应用一个PIN码,这样应用通过PIN码才有权限访问该用户的信息,而应用在整个过程中是接触不到密码的,所以用户觉得很安全,后果很满意

2:获得认证之后,就可以使用微博SDK提供的API获得信息啦

3:如果想设计web或者客户端应用的话,那就继续加个GUI好啦(未完成)

代码:

#!/usr/bin/python

import webbrowser

from weibopyauth import OAuthHandler

from weibopyapi import API

AppKey = '2525355147'

AppSecret = '2e2c7bcdfc362eace266d1f2bf83fe6b'

my_auth = OAuthHandler(AppKey , AppSecret)

webbrowseropen(my_authget_authorization_url())

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

my_authget_access_token(verifier)

my_api = API(my_auth)

for comment in my_apimentions():

object = comment

id = object__getattribute__("id")

text = object__getattribute__("text")

print str(id) + " : " + text

关于网站API接口的获取与调用,在网站开发中运用比较常见,也是每一个程序员、开发者必需的技能,比如从腾讯,新浪等大型网站提供的接口调用,在开发者经常遇到;所以,作为开发人员,在写好代码的同时,要学会API接口的调用。本篇经验以C#语言为了,演示发送短信的API接口调用。

工具/原料

计算机

方法/步骤

1、熟悉概念什么是API,即应用程序编程接口,也就是在网站开发时预先定义的函数,就是常说的开源函数,只不过将一些固定的程序封装在这些函数中,待调用时只需要一个借口引用,方便又简单。就像调用Jquery函数一样。

2、获取接口地址发送短信API接口在开源代码里面可以查到,可以直接到开源网站查询即可。

3、分析参数短息接口跟其他接口有所不同,短信接口是由各地运营商收费才能开通。所以,接口返回成功不代表接收成功,具体接收状态只能由运营商查询,另外,短信api接口本身不限制发送频率,具体发送频率需要用户自行设置。

4、调用返回值测试在html文件中写入调用接口,并测试,查看是否调用成果,如图显示成果与失败的返回参数。

5、C#接入接口在C#程序中输入以下代码,调用短信接口;usingSystem;usingSystemCollectionsGeneric;usingSystemLinq;usingSystemText;usingSystemNet;usingSystemIO;usingXfrogNet;usingSystemDiagnostics;usingSystemWeb;如图:(关于C#程序的创建,不再演示)

6、申明调用空间每个函数都需要事先声明才能调用,所以,在程序开始时,必须声明命名空间namespaceConsoleAPI{}

7、定义请求方法程序的调用方法一般为Post和Get两种,所以要申明用什么调用,关于Post和Get的区别,本处不作重点介绍。

8、创建请求函数声明请求方式之后,即可创建请求函数,包括发送语言,延时响应等参数

9、请求参数及文本转换设置相关参数后,将程序编码转换为文字编码,这样接收方才能正常显示文字,否则就是一段代码,行外人是看不懂的,所以,必须将数据流转换为文本对象。

10、释放资源并测试写程序调用时,不管是什么程序,在调用完之后一定要释放程序,否则将会一直占用资源,消耗内存。

1、SendMessage

向TreeView控件发送消息通常要用API的sendmessge函数,这需要在标准模块里添加声明如下:

'API声明

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd AsLong, ByVal wMsg AsLong, ByVal wParam AsLong, lParam As Any) AsLong

Public Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd AsLong, ByVal wMsg AsLong, ByVal wParam AsLong, ByVal lParam AsLong) AsLong

这上面两个声明,区别只在最后一个参数。Tiger_Zhao说,前一种是自动取地址,通常对应指针类型的参数。后一种直接传值,通常对应非指针类型的参数。通常,如果MSDN 的参数类型有,就用前一种。而后一种,实际上可以对应于下面这种调用: Call SendMessage(hTvw, TVM_EXPAND, TVE_EXPAND, ByVal hItem)。在这篇文章里有一个具体的例子。

2、获得TreeView Node对应的HItem

发消息时,常常需要提供的参数之一是TreeView Node对应的HItem。可以像下面这样获得:

PrivateFunction GetHTreeItem(ByVal nodX As MSComctlLibNode, treX As MSComctlLibTreeView) AsLong

nodXSelected =True

GetHTreeItem = SendMessage(treXhwnd, TVM_GETNEXTITEM, TVGN_CARET, 0)

End Function

不过,上面的方法中要改变treeview的当前节点。如果不希望改变当前节点的话,可以参考这篇文章里的办法:>

d": "bitcoin",

"name": "Bitcoin",

"symbol": "BTC",

"rank": "1",

"price_usd": "573137",

"price_btc": "10",

"24h_volume_usd": "728557000",

"market_cap_usd": "90808835000",

"available_supply": "158441760",

"total_supply": "158441760",

"percent_change_1h": "004",

"percent_change_24h": "-03",

以上就是关于如何通过python调用新浪微博的API来爬取数据全部的内容,包括:如何通过python调用新浪微博的API来爬取数据、如何获取网站api接口、如何使用api获取treeview控件节点数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9729279.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存