• Stars
    star
    232
  • Rank 172,847 (Top 4 %)
  • Language
    PHP
  • License
    MIT License
  • Created almost 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

微博爬虫,模拟登录,数据抓取

weibot

微博机器人

安装

composer require hanson/weibot:dev-master -vvv

文档

登录

<?php

include_once __DIR__.'/../vendor/autoload.php';

$weibo = new \Hanson\Weibot\Weibot([
    'username' => '',
    'password' => '',
    'cookie_path' => __DIR__.'/cookie', // cookie 存储路径
    'debug' => []
]);

搜索 Search

<?php
$search = $weibo->search;

$search->getData([
    'keyword' => '关键词',
//     'page' => 1, // 页数
//    'start_at' => '2019-11-07-6', # yyyy-mm-dd-h 时间筛选
//    'end_at' => '2019-12-07-8',
]);

我的关注 Follow

<?php
$follow = $weibo->follow;

// 获取我的关注
$follow->getData([
//     'page' => 1, // 页数
]);

// 取消关注 
$follow->unfollow($uid);

微博 Post

<?php
$post = $weibo->post;

/**
 * 发送微博
 *
 * @param string $text 发送的微博内容
 * @return mixed
 */
$post->send($text);

/**
 * 评论微博
 *
 * @param $mid string 微博 id
 * @param $content string 评论内容
 * @param bool $forward 是否转发
 * @return mixed
 */
$post->comment($mid, $content, $forward = false)

/**
 * 转发微博
 *
 * @param $mid
 * @param $reason string 转发内容
 * @param bool $isComment 是否评论
 * @param bool $isCommentBase 是否对原微博评论
 * @return mixed
 */
$post->forward($mid, $reason, $isComment = false, $isCommentBase = false)

/**
 * 删除微博
 * 
 * @param $mid string 微博id
 * @return false|string
 */
$post->delete($mid)

// 我的微博(待开发)
$post->getData()

参与开发更多 API

基于 weibot,开发微博的抓包工作会更加简单

一、登录

微博很多操作都需要登录,所以写脚本的时候先登录,让 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);
  • 有部分地方是异步接口的,例如下滑滚动分页

More Repositories

1

vbot

微信,企微,机器人,企业微信,企微机器人,微信机器人,小红书,聚合聊天,RPA,协议,hook,逆向,worktool,ntwork,群发,自动回复,chatgpt,API对接,稳定防封全语言通用,企业定制/SCRM/SAAS专用
PHP
3,946
star
2

laravel-admin-wechat

laravel admin 的微信扩展包,支持多公众号、多小程序、多微信支付,包含基础接口与后台
PHP
237
star
3

foundation-sdk

To create a sdk easiler!
PHP
218
star
4

face

😀微软小冰检测图片颜值评分接口
PHP
153
star
5

speedy

🚄A Laravel Admin Package to create a website quickly
PHP
145
star
6

youzan-sdk

👍有赞 SDK
PHP
103
star
7

typecho_material_theme

🎁material style theme for the typecho
PHP
102
star
8

my-vbot

Vbot 运行例子
PHP
96
star
9

img

🖼Image hosting powered by laravel
PHP
90
star
10

ProgressDialog

💿progress dialog for android
Java
66
star
11

rainbow

skin for laravel-admin. Laravel admin 皮肤,让后台更好看
PHP
47
star
12

wepy-template

一个基于 wepy 的小程序开发模板
JavaScript
36
star
13

ngrok-script

A script to run local ngrok client for linux and windows
Shell
33
star
14

wechat-notice

微信消息模板发送
PHP
22
star
15

meituan-sdk

美团 SDK
PHP
22
star
16

laravel-admin-register

laravel-admin 短信注册扩展(支持多个短信服务商)
PHP
21
star
17

laravel-admin-qiniu

Laravel admin 框架的七牛 qiniu 多图上传扩展
PHP
21
star
18

open-taobao-sdk

淘宝开放平台SDK
PHP
19
star
19

aes

a golang library to use aes encrypt easier.
Go
18
star
20

newline-echarts

echarts 换行利器
JavaScript
17
star
21

Data-Structure

Data-Structure for JAVA
Java
17
star
22

laravel-work-exception

使用企业微信通知你的系统异常
PHP
13
star
23

pospal

银豹收银系统 SDK
PHP
13
star
24

wechat-lumen

A wechat Application build on lumen
PHP
12
star
25

wechat-handler

A package to create some base handler for wechat events faster!
PHP
11
star
26

Links_for_Material_Theme

基于hanny的友情链接插件做修改,使其在Material Theme中保持原有风格
PHP
11
star
27

WeworkMsg

全语言通用的企业微信会话存档SDK
Go
11
star
28

gaode-sdk

高德地图 SDK
PHP
8
star
29

Exmail

腾讯企业邮箱API
PHP
8
star
30

wechat-oa

登录微信公众号并可主动发送消息
PHP
7
star
31

weidian-sdk

微店(weidian)的SDK接口包
PHP
6
star
32

crawler

A easy package to crawl a site list and detail
PHP
5
star
33

timeutil

a tool processing time for golang
Go
4
star
34

hertz-starter-kit

基于 hertz 做的脚手架
Go
4
star
35

base-laravel-project

PHP
4
star
36

collection

Go
3
star
37

TextFinder

Go
3
star
38

tuling-sdk

AI response from tuling123.com.
PHP
3
star
39

laravel-learning-note

个人对于laravel的代码、设计解读
PHP
3
star
40

phpstorm-setting

personal phpstorm setting
2
star
41

xcx-template

小程序开发模板
JavaScript
2
star
42

coordinate

PHP
1
star
43

HomePage

A simple navigation website
PHP
1
star
44

mobile-form

Laravel admin 的手机验证码 field 字段
HTML
1
star
45

laravel-admin-alioss

laravel admin ali oss support
PHP
1
star
46

golang-learning

golang 源码学习与解析
1
star