使用新浪微博开放平台api同步微博内容至自己网站( +python模拟登陆新浪微博(2):)
优采云 发布时间: 2022-02-01 17:07使用新浪微博开放平台api同步微博内容至自己网站(
+python模拟登陆新浪微博(2):)
上次准备用selenium + python模拟登陆新浪微博(这个方法太烂了)。最后我卡在了验证码链接。对于我这样的菜鸟,新浪太不友好了。完全没有考虑到我的感受。附上模拟登录代码。
问题出在获取验证码图片的环节,这里新浪不知道怎么弄。地址是一样的,但是每次访问得到的验证码都不一样,所以无法得到正确的验证码。本来打算用selenium截图获取验证码,交给百度兽人鉴定。我发现百度的新浪验证码识别准确率低的可怕。
所以,我放弃了。请改用官方提供的正确做法。这样你就不会被封号了。还是很不错的。官方 API 基本上是一个 rest 接口。它可以很容易地调用和获取。主要写在下面。如何成功获得授权。授权完成后,可以调用新浪接口获取数据(公开、公平)。
官方的Api相当丰富。我主要用他们的评论,也用搜索界面。所以我认为它是完美的。
首先,要访问这些东西,你需要有一个新浪帐号。然后点击:“微连接”创建应用程序。
创建完成后。您可以在“我的应用程序”中找到它:
点击应用进入后,可以看到应用的app key和App Secret。这两个很重要,后面会用到授权。
获得授权。这里新浪使用了一种授权机制,叫做:OAuth2.0:简单来说就是你访问授权服务器,授权服务器给你返回一个证书,然后你就可以用这个证书访问新浪的其他接口。
授权服务器相当于门卫的意思。你来到一座建筑。然后门卫给了一张*敏*感*词*。之后,您进入大楼。每次进入房间。门口的守卫都要求你提供刚进楼的人给你的*敏*感*词*。否则,您将被拒绝入境。大概就是这个意思。
长话短说,直接看如何获取授权:
授权需要自己配置回调地址。需要访问。除了在参数中添加这个地址外,还需要在你的应用程序中写入。那是:
这里。我直接用 Flask 搭建了一个本地服务器:
然后使用内网穿透软件。免费的是:natapp:
渗透出来。这样我们就有了回调的地址。
接下来看官方API:
首先我们需要访问:
这需要我们填写之前佩戴应用后获取的app key和我们构建的接受回调的地址:
然后在浏览器中打开这个地址:
点击Authorize(我的回调函数写的打印代码,所以这里直接打印代码,地址栏也可以拿到这个代码):
之后,我们使用新浪给出的第二个url:
此 url 需要使用 post 方法提交。
代码也有自己的应用密钥和应用秘密。
填写后提交:
您将获得 json 格式的返回:
{“access_token”:“asdasdasdadasdasdsadda”,“remind_in”:“1233566966”,“expires_in”:1233566966,“uid”:“”,“isRealName”:“true”}
这就是我们最终的结果。代表我们授权成功。
然后访问界面很容易。我们只保存 access_token。每次访问调用界面时都可以带上这个。
接口测试可以使用谷歌的postman,或者新浪提供的测试工具
新浪提供了一个接口测试工具,可以直接在线测试接口:这里我从之前爬过的微博列表中选择了一个ID为文章。请求后得到新浪返回的评论结果的json字符串。
大概一目了然(一万多行的字符串):