继微信机器人后,我又开发了微博机器人(附带分享一点抓包经验以及沙雕表情)

前言

继我开发微信机器人后 https://github.com/Hanson/vbot (今天终于 3.1K star),我又闲着无聊开发了微博机器人 https://github.com/Hanson/weibot

继微信机器人后,我又开发了微博机器人(附带分享一点抓包经验)

其实我本意并没有打算动手开发,但无奈去找相关PHP源码时,有点让我心塞

图片

PHP 相关的包只有两个!

而且!没有一个是能够自动登录的!其中一个还是在PHP调用JS去加密密码!

换句话说就是你跑脚本的时候还要使用一下浏览器,调用一下 JS 方法,把加密好的密码复制黏贴到 PHP 脚本里。

qBvGxVKioF.png!large

还没见过这么骚的操作,于是我抡起键盘开始新一轮复兴 PHP 的道路。

YES!PHP CAN!!!

O3WEHxAHAd.png!large

正片

项目链接:https://github.com/Hanson/weibot (点进去麻烦点个 star,不然浪费了我用沙雕精神去写的这篇文章)

目前实现的功能包括:

  • 搜索
  • 删除微博、微博评论、转发、评论并转发、转发并评论(没错,跟上个一样)
  • 我的关注、取消关注

一起参与

希望大家在点 star 的同时,也能一起参与开发,本人精力有限,尽力而为,因此也简单写了开发快速入门的方法

继微信机器人后,我又开发了微博机器人(附带分享一点抓包经验)

一、登录

微博很多操作都需要登录,所以写脚本的时候先登录,让 cookie 存储起来 $weibo->login()

二、抓包

根据浏览器看到的请求,我们可以尝试模拟一下

<?php
// $client 已经是一个带 cookie 的“浏览器”客户端了,根据实际情况进行 get 或者 post
$client = \Hanson\Weibot\Api\Api::getClient();

$response = $client->post('http://weibo.com', [
  'header' => [
  // 如果有特殊 header 需求   
  ],
  'form_params' => [
  // 各种请求参数
  ]
 ]);

// 得到的 response 有可能是页面,也有可能是接口,自行处理
$data = json_decode($response->getBody()->getContents(), true);
  • 微博部分页面是基于页面渲染的模式
  • 微博的渲染并不按套路出牌,而是使用了 FM.view 的内部框架
  • 抓取内容需要先在 script 里正则匹配出来相关的 HTML。 例如:preg_match_all('/Pl_Official_MyProfileFeed__20.*html\":\"(.*)\"}/', $html, $matches);
  • 有部分地方是异步接口的,例如下滑滚动分页

最后

欢迎大家来微信一起吹吹水

HSx3wOiTA2.png!large

php吹水交流群 570769430

附言 1  ·  2周前

你们能不能别跟楼了。。。

本帖由 Summer 于 2周前 加精
Hanson
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 59
Jourdon

虽然不玩微博,赞还是要给的

2周前 评论
Jourdon (作者) 2周前
likunyan 2周前

虽然不玩微博,赞还是要给的

2周前 评论

虽然不玩微博,赞还是要给的

2周前 评论

虽然不玩微博,赞还是要给的

2周前 评论

虽然不玩微博,赞还是要给的

2周前 评论

虽然不玩微博,赞还是要给的

2周前 评论
hxd

虽然不玩微博,赞还是要给的

2周前 评论
几乎成名丶

虽然不玩微博,赞还是要给的

2周前 评论

虽然不玩微博,赞还是要给的

2周前 评论

虽然不玩微博,赞还是要给的

2周前 评论
bigliang_iOS

虽然不玩微博,赞还是要给的

2周前 评论

虽然不微玩博,赞是还要的给

2周前 评论
萧晔离

虽然不玩微博,赞还是要给的

2周前 评论

虽然不玩微博,赞还是要给的

2周前 评论

对了,顺便问下大佬,我一直存在的疑问:

就是为啥微信/微信都提供开放api了,为啥还去开发这个呀? 有点没明白

2周前 评论

虽然不玩微博,赞还是要给的

2周前 评论
Hanson

@839891627 开放的API是有限的,主要是做微博登录的。而爬虫是可以爬微博数据

2周前 评论

想问下vbot机器人是不能用了吗?微信好像已经封了网页登录

2周前 评论
Hanson

@qf-Z 不是不能用,看你的账号能否登录微信网页版,可以的话就能用

2周前 评论
一个人的江湖

虽然不玩微博,赞还是要给的

2周前 评论

虽然不玩微博,赞还是要给的

2周前 评论
犯二青年

虽然不玩微博,赞还是要给的

2周前 评论

虽然不玩微博,赞还是要给的

2周前 评论

虽然不玩微博,赞还是要给的

ps 不跟楼会显得我不和群

2周前 评论

虽然不玩微博,赞还是要给的

ps 加一,我强迫症犯了,不跟楼好别扭

2周前 评论

前阵子刚看到这个PHP的 stockoverflow 的聊天室应用,https://github.com/async-bot/example 也是支持机器人的

2周前 评论

虽然不玩微博,赞还是要给的

2周前 评论

哦是嘛? 虽然不玩微博, 赞还是要给的.

2周前 评论

虽然不玩微博,赞还是要给的

2周前 评论
空气

虽然不玩微博,赞还是要给的 :joy:,微博是什么,我怎么感觉脱节了

2周前 评论

厉害厉害,留个赞

2周前 评论
likunyan

老铁666

2周前 评论

虽然不玩微博,赞还是要给的

2周前 评论

老哥,微信网页版限制登录了,有啥解决办法吗

2周前 评论
Hanson

@芝麻 没办法

2周前 评论
phperShine

虽然不玩微博,赞还是要给的

1周前 评论

虽然不玩赞,微博还是要给的

1周前 评论

虽然不玩微博,赞还是要给的

1周前 评论
QiFengLe_

虽然不玩微博,赞还是要给的

1周前 评论

虽然不玩微博,赞还是要给的

1周前 评论

虽然不玩微博,赞还是要给的

1周前 评论

赞还是要给的……前面几个字大家都在说,我就省略了

1周前 评论

老板啥时候出个ipad的协议。

1周前 评论
笑逐颜凯

虽然不玩微博,赞还是要给的

1周前 评论

虽然不玩微博,赞还是要给的

1周前 评论

二维码失效了。

1周前 评论

虽然不玩微博,我也不给赞 (#^.^#)

1周前 评论

不错哦 👍

1周前 评论

666,支持一下

1周前 评论

虽然不玩微博,赞还是要给的

5天前 评论
panda-sir

这个 不会给律师函警告么 :joy:

5天前 评论

虽然不微玩博,赞是还要的给

4天前 评论
smiles

虽然不微玩博,赞是还要的给

4天前 评论

表情包这么好,赞是少不了的。

4天前 评论
勺颠颠

虽然不玩电脑,评论 :joy:是要给的

3天前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!