知乎API搜集

渗透测试被动信息搜集之 Recon-NG 0x00:前言 在渗透测试中,第一步莫非搜集信息,而搜集信息其被动搜索方法是很不错的。为什么?对于搜集信息被主机检测到的可能性来说,被动搜索是最低的,其次是主机检测、端口扫描等,然后就是主机服务、应用、补丁等。对于被动搜集,Recon-NG 是一个很不错的工具。 0x01:工具介绍 何为 Recon-NG,主要用来对于目标的信息搜集,可以搜集哪些东西?ip 地址,子域名,子域名 ip,位置,... 阅读详情

一共三篇,每篇都由Markdown编写,故无法用优快云的Markdown编辑器添加更高一层的目录
第一篇文章《知乎日报API分析》
转自:https://github.com/izzyleung/ZhihuDailyPurify/wiki/%E7%9F%A5%E4%B9%8E%E6%97%A5%E6%8A%A5-API-%E5%88%86%E6%9E%90

声明

以下所有 API 均由 知乎(Zhihu.Inc) 提供,本人(Izzy Leung)采取非正常手段获取。获取与共享之行为或有侵犯知乎权益的嫌疑。若被告知需停止共享与使用,本人会及时删除此页面与整个项目。
请您暸解相关情况,并遵守知乎协议。

API 说明

  • 知乎日报的消息以 JSON 格式输出

  • 网址中 api 后数字代表 API 版本,过高或过低均会得到错误信息

  • 较老的接口(启动界面图像获取,最新消息,过往消息)中将数字 2 替换为 1.2 获得效果相同,替换为 1.1 获得的是老版本 API 输出的 JSON 格式(替换为更低,如 1.0,或更高,如 1.3,将会获得错误消息)

  • 以下所有 API 使用的 HTTP Method 均为 GET

API 分析

1. 启动界面图像获取

  • URL: http://news-at.zhihu.com/api/4/start-image/1080*1776
  • start-image 后为图像分辨率,接受如下格式

    • 320*432
    • 480*728
    • 720*1184
    • 1080*1776
  • 响应实例:

    {
        text: "© Fido Dido",
        img: "http://p2.zhimg.com/10/7b/107bb4894b46d75a892da6fa80ef504a.jpg"
    }  
    
  • 分析:

    • text : 供显示的图片版权信息
    • img : 图像的 URL

2. 软件版本查询

  • Android: http://news-at.zhihu.com/api/4/version/android/2.3.0
  • iOS: http://news-at.zhihu.com/api/4/version/ios/2.3.0
  • URL 最后部分的数字代表所安装『知乎日报』的版本
  • 响应实例:

    软件为最新版本时

    {
        "status": 0,
        "latest": "2.2.0"
    }
    

    软件为较老版本时

    {
        "status": 1,
        "msg": "【更新内容】(后略)",
        "latest": "2.2.0"
    }
    
  • 分析:

    • status : 0 代表软件为最新版本,1 代表软件需要升级
    • latest : 软件最新版本的版本号(数字的第二段会比最新的版本号低 1)
    • msg : 仅出现在软件需要升级的情形下,提示用户升级软件的对话框中显示的消息

3. 最新消息

  • URL: http://news-at.zhihu.com/api/4/news/latest
  • 响应实例:

    {
        date: "20140523",
        stories: [
            {
                title: "中国古代家具发展到今天有两个高峰,一个两宋一个明末(多图)",
                ga_prefix: "052321",
                images: [
                    "http://p1.zhimg.com/45/b9/45b9f057fc1957ed2c946814342c0f02.jpg"
                ],
                type: 0,
                id: 3930445
            },
        ...
        ],
        top_stories: [
            {
                title: "商场和很多人家里,竹制家具越来越多(多图)",
                image: "http://p2.zhimg.com/9a/15/9a1570bb9e5fa53ae9fb9269a56ee019.jpg",
                ga_prefix: "052315",
                type: 0,
                id: 3930883
            },
        ...
        ]
    }
    
  • 分析:

    • date : 日期
    • stories : 当日新闻
      • title : 新闻标题
      • images : 图像地址(官方 API 使用数组形式。目前暂未有使用多张图片的情形出现,曾见无 images 属性的情况,请在使用中注意 )
      • ga_prefix : 供 Google Analytics 使用
      • type : 作用未知
      • id : url 与 share_url 中最后的数字(应为内容的 id)
      • multipic : 消息是否包含多张图片(仅出现在包含多图的新闻中)
    • top_stories : 界面顶部 ViewPager 滚动显示的显示内容(子项格式同上)

4. 消息内容获取与离线下载

  • URL: http://news-at.zhihu.com/api/4/news/3892357
  • 使用在 最新消息 中获得的 id,拼接在 http://news-at.zhihu.com/api/4/news/ 后,得到对应消息 JSON 格式的内容
  • 响应实例:

    {
        body: "<div class="main-wrap content-wrap">...</div>",
        image_source: "Angel Abril Ruiz / CC BY",
        title: "卖衣服的新手段:把耐用品变成「不停买新的」",
        image: "http://p4.zhimg.com/30/59/30594279d368534c6c2f91b2c00c7806.jpg",
        share_url: "http://daily.zhihu.com/story/3892357",
        js: [ ],
        ga_prefix: "050615",
        type: 0,
        id: 3892357,
        css: [
            "http://news.at.zhihu.com/css/news_qa.6.css?v=b390f"
        ]
    }   
    
  • 分析:

    • body : HTML 格式的新闻
    • image-source : 图片的内容提供方。为了避免被起诉非法使用图片,在显示图片时最好附上其版权信息。
    • title : 新闻标题
    • image : 获得的图片同 最新消息 获得的图片分辨率不同。这里获得的是在文章浏览界面中使用的大图。
    • share_url : 供在线查看内容与分享至 SNS 用的 URL
    • js : 供手机端的 WebView(UIWebView) 使用
    • ga_prefix : 供 Google Analytics 使用
    • type : 新闻的类型
    • id : 新闻的 id
    • css : 供手机端的 WebView(UIWebView) 使用
      • 可知,知乎日报的文章浏览界面利用 WebView(UIWebView) 实现
  • 特别注意
    在较为特殊的情况下,知乎日报可能将某个主题日报的站外文章推送至知乎日报首页。
    响应实例:

    {
        "theme_name": "电影日报",
        "title": "五分钟读懂明星的花样昵称:一美、法鲨……",
        "share_url": "http://daily.zhihu.com/story/3942319",
        "js": [],
        "ga_prefix": "052921",
        "editor_name": "邹波",
        "theme_id": 3,
        "type": 1,
        "id": 3942319,
        "css": [
            "http://news.at.zhihu.com/css/news_qa.6.css?v=b390f"
        ]
    }
    

    此时返回的 JSON 数据缺少 body,iamge-source,image,js 属性。多出 theme_name,editor_name,theme_id 三个属性。type 由 0 变为 1。

5. 过往消息

  • URL: http://news.at.zhihu.com/api/4/news/before/20131119
  • 若果需要查询 11 月 18 日的消息,before 后的数字应为 20131119
  • 知乎日报的生日为 2013 年 5 月 19 日,若 before 后数字小于 20130520 ,只会接收到空消息
  • 输入的今日之后的日期仍然获得今日内容,但是格式不同于最新消息的 JSON 格式
  • 响应实例:

    {
        date: "20131118",
        stories: [
            {
                title: "深夜食堂 · 我的张曼妮",
                ga_prefix: "111822",
                images: [
                    "http://p4.zhimg.com/7b/c8/7bc8ef5947b069513c51e4b9521b5c82.jpg"
                ],
                type: 0,
                id: 1747159
            },
        ...
        ]
    }
    
  • 格式与前同,恕不再赘述

6. 新闻额外信息

  • URL: http://news-at.zhihu.com/api/4/story-extra/#{id}
  • 输入新闻的ID,获取对应新闻的额外信息,如评论数量,所获的『赞』的数量。
  • 响应实例:

    {
        "long_comments": 0,
        "popularity": 161,
        "short_comments": 19,
        "comments": 19,
    }
    
  • 分析:

    • long_comments : 长评论总数
    • popularity : 点赞总数
    • short_comments : 短评论总数
    • comments : 评论总数

7. 新闻对应长评论查看

  • URL: http://news-at.zhihu.com/api/4/story/4232852/long-comments
  • 使用在 最新消息 中获得的 id,在 http://news-at.zhihu.com/api/4/story/#{id}/long-comments 中将 id 替换为对应的 id,得到长评论 JSON 格式的内容
  • 响应实例:

    {
        "comments": [
            {
                "author": "EleganceWorld",
                "id": 545442,
                "content": "上海到济南,无尽的猪排盖饭… (后略)",
                "likes": 0,
                "time": 1413589303,
                "avatar": "http://pic2.zhimg.com/1f76e6a25_im.jpg"
            },
            ...
        ]
    }
    
  • 分析:

    • comments : 长评论列表,形式为数组(请注意,其长度可能为 0)
      • author : 评论作者
      • id : 评论者的唯一标识符
      • content : 评论的内容
      • likes : 评论所获『赞』的数量
      • time : 评论时间
      • avatar : 用户头像图片的地址

8. 新闻对应短评论查看

  • URL: http://news-at.zhihu.com/api/4/story/4232852/short-comments
  • 使用在 最新消息 中获得的 id,在 http://news-at.zhihu.com/api/4/story/#{id}/short-comments 中将 id 替换为对应的 id,得到短评论 JSON 格式的内容
  • 响应实例:

    {
        "comments": [
            {
                "author": "Xiaole说",
                "id": 545721,
                "content": "就吃了个花生米,呵呵",
                "likes": 0,
                "time": 1413600071,
                "avatar": "http://pic1.zhimg.com/c41f035ab_im.jpg"
            },
            ...
        ]
    }
    
  • 格式与前同,恕不再赘述

9. 主题日报列表查看

  • URL: http://news-at.zhihu.com/api/4/themes
  • 响应实例:

    {
        "limit": 1000,
        "subscribed": [ ],
        "others": [
            {
                "color": 8307764,
                "thumbnail": "http://pic4.zhimg.com/2c38a96e84b5cc8331a901920a87ea71.jpg",
                "description": "内容由知乎用户推荐,海纳主题百万,趣味上天入地",
                "id": 12,
                "name": "用户推荐日报"
            },
            ...
        ]
    }
    
    • 分析:
      • limit : 返回数目之限制(仅为猜测)
      • subscribed : 已订阅条目
      • others : 其他条目
        • color : 颜色,作用未知
        • thumbnail : 供显示的图片地址
        • description : 主题日报的介绍
        • id : 该主题日报的编号
        • name : 供显示的主题日报名称

10. 主题日报内容查看

  • URL: http://news-at.zhihu.com/api/4/theme/11
  • 使用在 主题日报列表查看 中获得需要查看的主题日报的 id,拼接在 http://news-at.zhihu.com/api/4/theme/ 后,得到对应主题日报 JSON 格式的内容
  • 响应实例:

    {
        stories: [
            {
                images: [
                    "http://pic1.zhimg.com/84dadf360399e0de406c133153fc4ab8_t.jpg"
                ],
                type: 0,
                id: 4239728,
                title: "前苏联监狱纹身百科图鉴"
            },
            ...
        ],
        description: "为你发现最有趣的新鲜事,建议在 WiFi 下查看",
        background: "http://pic1.zhimg.com/a5128188ed788005ad50840a42079c41.jpg",
        color: 8307764,
        name: "不许无聊",
        image: "http://pic3.zhimg.com/da1fcaf6a02d1223d130d5b106e828b9.jpg",
        editors: [
            {
                url: "http://www.zhihu.com/people/wezeit",
                bio: "微在 Wezeit 主编",
                id: 70,
                avatar: "http://pic4.zhimg.com/068311926_m.jpg",
                name: "益康糯米"
            },
            ...
        ],
        image_source: ""
    }
    
    • 分析:
      • stories : 该主题日报中的文章列表
        • images : 图像地址(其类型为数组。请留意在代码中处理无该属性与数组长度为 0 的情况)
        • type : 类型,作用未知
        • title : 消息的标题
      • description : 该主题日报的介绍
      • background : 该主题日报的背景图片(大图)
      • color : 颜色,作用未知
      • name : 该主题日报的名称
      • image : 背景图片的小图版本
      • editors : 该主题日报的编辑(『用户推荐日报』中此项的指是一个空数组,在 App 中的主编栏显示为『许多人』,点击后访问该主题日报的介绍页面,请留意)
        • url : 主编的知乎用户主页
        • bio : 主编的个人简介
        • id : 数据库中的唯一表示符
        • avatar : 主编的头像
        • name : 主编的姓名
      • image_source : 图像的版权信息

11. 热门消息

  • 请注意!此 API 仍可访问,但是其内容未出现在最新的『知乎日报』 App 中。
  • URL: http://news-at.zhihu.com/api/3/news/hot
  • 响应实例:

    {
        recent: [
            {
                news_id: 3748552,
                url: "http://daily.zhihu.com/api/2/news/3748552",
                thumbnail: "http://p3.zhimg.com/67/6a/676a8337efec71a100eea6130482091b.jpg",
                title: "长得漂亮能力出众性格单纯的姑娘为什么会没有男朋友?"
            },
        ...
        ]
    }        
    
  • 大体同前面介绍的 API 类似,唯一需要注意的是:欲获得图片地址,不再使用 image 而是 thumbnail 属性

  • url 属性可直接使用。请注意,url 中的 api 属性为 2,是较老版本。

12. 软件推广

  • 请注意!此 API 仍可访问,但是其内容未出现在最新的『知乎日报』 App 中。
  • Android: http://news-at.zhihu.com/api/3/promotion/android
  • iOS: http://news-at.zhihu.com/api/3/promotion/ios

13. 栏目总览

  • 请注意!此 API 仍可访问,但是其内容未出现在最新的『知乎日报』 App 中。
  • URL: http://news-at.zhihu.com/api/3/sections
  • 响应实例:

    {
        data: [
            {
                id: 1,
                thumbnail: "http://p2.zhimg.com/10/b8/10b8193dd6a3404d31b2c50e1e232c87.jpg",
                name: "深夜食堂",
                description: "睡前宵夜,用别人的故事下酒"
            },
        ...
        ]
    }
    
  • 同样,注意使用 thumbnail 获取图像的地址

14. 栏目具体消息查看

  • 请注意!此 API 仍可访问,但是其内容未出现在最新的『知乎日报』 App 中。
  • URL: http://news-at.zhihu.com/api/3/section/1
  • URL 最后的数字见『栏目总览』中相应栏目的 id 属性
  • 响应实例:

    {
        news: [
            {
                date: "20140522",
                display_date: "5 月 22 日"
            },
        ...
        ],
        name: "深夜食堂",
        timestamp: 1398780001
    }
    
  • 往前:http://news-at.zhihu.com/api/3/section/1/before/1398780001

    • 在 URL 最后加上一个时间戳,时间戳详见 JSON 数据末端的 timestamp 属性

第二篇文章《知乎API分析》
转自:https://github.com/hrtsea/zhihu/wiki/%E7%9F%A5%E4%B9%8EAPI%E5%88%86%E6%9E%90

知乎API分析

作为一个WindowsPhone并常刷知乎的用户,我一直期待知乎windowsphone版客户端的发布。可根据经验,WindowsPhone这种小众群体一般很难获得关注,其应用的缺乏简直令人心酸。所谓求人不如求自己,于是我打算分析知乎的API,自己写一个WindowsPhone版的客户端。

我借了我朋友潇湘竹的iphone5,在电脑的fiddler中抓取知乎的数据包(使用fiddler抓取iphone的包的方法在网上可以找的到,这里就不详述了)。

首先是知乎登陆的API,在fiddler中可看出其post的地址是https://oauth.zhihu.com/token,其Request Headers如下(使用c#编写,):

public static HttpAssistant.Header requestHeader = new HttpAssistant.Header();
requestHeader.Method = HttpAssistant.HttpRequestMethods.Post;
requestHeader.AcceptEncoding = "gzip, deflate";
requestHeader.Accept = "application/json";
requestHeader.Connection = "Keep-Alive";
requestHeader.UserAgent = "ZhihuAppIrisRelease/96 (iPhone; iOS 6.1.2; Scale/2.00)";
requestHeader.ContentType = "application/x-www-form-urlencoded; charset=utf-8";
requestHeader.Authorization = authBasic;
requestHeader.XAPIVERSION = "3.0";
requestHeader.XAPPVERSION = "2.1.0";

其返回值为一个json类型的数据:

{"token_type":"bearer","access_token":"fc25004cfe424c83bec4e0189428b345","expires_in":2592000,"refresh_token":"6595ad8bcd9a489a965f2282bf54a04f"}

其post值为:

client_id=4bc899f2695f417eb733f3d21a7be0&client_key=d179a1e11f2347a48c7f928d354621&email=panshichen_joker%40outlook.com&grant_type=password&password=111111

经过删除并重装客户端及换账号登陆等操作,可知以下数据始终不变:

private string clientId = "4bc899f2695f417eb733f3d21a7be0";
        private string clientKey = "d179a1e11f2347a48c7f928d354621";
        private string authBasic = "Basic NGJjODk5ZjI2OTVmNDE3ZWI3MzNmM2QyMWE3YmUwOmQxNzlhMWUxMWYyMzQ3YTQ4YzdmOTI4ZDM1NDYyMQ==";
        private string authBearer = "Bearer ";
且:
authBearer += accessToken;

按上述数据提交,发现登陆成功!

这着的知乎api就没什么内容了,以下是知乎的各个api,其post地址为:

/// <summary>
        /// 登录
        /// </summary>
        public static string Login { get { return "https://oauth.zhihu.com/token"; } }
        /// <summary>
        /// 个人资料
        /// </summary>
        public static string PeopleSelf { get { return "https://api.zhihu.com/people/self"; } }
        /// <summary>
        /// 未读消息数量
        /// </summary>
        public static string UnreadCount { get { return "https://api.zhihu.com/unread_count"; } }
        /// <summary>
        /// 最新动态
        /// </summary>
        public static string Feeds { get { return "https://api.zhihu.com/feeds"; } }
        /// <summary>
        /// 热门问答
        /// </summary>
        public static string ExploreAnswers { get { return "https://api.zhihu.com/explore/answers"; } }
        /// <summary>
        /// 热门收藏
        /// </summary>
        public static string ExploreCollections { get { return "https://api.zhihu.com/explore/collections"; } }
        /// <summary>
        /// 随便看看
        /// </summary>
        public static string ExploreRandom { get { return "https://api.zhihu.com/explore/random_question"; } }
        /// <summary>
        /// 消息内容
        /// </summary>
        public static string NotificationContent { get { return "https://api.zhihu.com/notifications/content"; } }
        /// <summary>
        /// 与我相关
        /// </summary>
        public static string NotificationLove { get { return "https://api.zhihu.com/notifications/love"; } }
        /// <summary>
        /// 私信
        /// </summary>
        public static string Inbox { get { return "https://api.zhihu.com/inbox"; } }

其提交函数为:

public dynamic feeds()
       {
           try
           {
               requestHeader.Method = HttpAssistant.HttpRequestMethods.Get;
               requestHeader.Authorization = authBearer;
               requestBody.Data = "";
               string ret = requestProcess.StringResponse(ZhihuApi.Feeds, requestHeader, requestBody, System.Text.Encoding.UTF8);
               return Json.JsonDecode(ret);

           }
           catch (Exception)
           {

               return null;
           }

       }

余者皆同。

第三篇文章《知乎数据API 接口 nodejs》
转自:https://github.com/shanelau/zhihu

知乎数据API 接口 nodejs

======

根据这些接口获取到知乎的数据,包括用户、问答、专栏、话题信息

欢迎贡献代码,一起完善知乎的接口

快速开始

var zhihu = require('zhihu');

demo

获取用户的信息

var username = 'shanelau1021';
zhihu.User.getUserByName(name).then(function(user){
    console.log(user);
});

用户 API

User.getUserByName(username)

根据用户名获取到用户的信息,用户名为用的唯一标识,参见个人主页的url,或者设置中的个性网站

  • username //用户位置标识

Example
请求这个用户:http://www.zhihu.com/people/shanelau1021
name 为 shanelau1021

var nam = 'shanelau1021';
zhihu.User.getUserByName(name).then(function(user){
    console.log(user);
});

Result

参数说明

  • answer答题数量
  • post 文章数量
  • follower 跟随者数量
  • profileUrl 个人主页
  • name 名字
  • sex性别
{ answer: 5,
  post: 0,
  follower: 456,
  profileUrl: 'http://www.zhihu.com/people/shanelau1021',
  name: '狂飙蜗牛',
  sex: 'male' }

专栏文章–Post

Post.info(postUrl)

获取专栏文章的详细信息

  • postUrl 文章的url地址

Example

zhihu.Post.info(postUrl).then(function(data){
    //do something
});

* Result *

  • Object

example

Post.page(name,options)

获取专栏文章列表

  • name 专栏的英文名字, 例如:’bigertech’
  • options {object} ,默认值为10

     {
             limit: 10   //记录数
             offset: 10  // 偏移量
     }

Example

demo

Post.likersDetail(postUrl)

获取文章的点赞者的详细信息

  • postUrl 文章的url地址

Result

用户数组

  • {Array} //User

Post.zhuanlanInfo(name)

获取专栏的信息

  • name 专栏的名字,比如 bigertech

Result

{ followersCount: 22614,
  description: '',
  creator:
  { bio: '魅族营销中心招募设计师',
  hash: '29c3654588fd4246bb90cbd345242d65',
  description: '',
  profileUrl: 'http://www.zhihu.com/people/linan',
  avatar:
  { id: '24f3a654b',
  template: 'http://pic2.zhimg.com/{id}_{size}.jpg' },
  slug: 'linan',
  name: '李楠' },
  topics: [],
  href: '/api/columns/bigertech',
  acceptSubmission: true,
  slug: 'bigertech',
  name: '笔戈科技',
  url: '/bigertech',
  avatar:
  { id: 'a4bf61d95',
  template: 'http://pic3.zhimg.com/{id}_{size}.jpg' },
  commentPermission: 'anyone',
  following: false,
  postsCount: 173,
  canPost: false,
  activateAuthorRequested: false }
  • {Array} //User

答案 Answer

likers

获取答案的点赞者
@TODO

问题API–Question

focus

问题的关注列表
@TODO

collection

问题的收藏列表

info

问题的详细信息
@TODO

questions

用户的提问列表
@TODO

answers

用户的回答列表
@TODO

zhuanlansFocus

用户关注的专栏
@TODO

topic

用户关注的话题信息
@TODO

话题API - Topic

Topic.getTopicByID(topicID[, page])

根据话题id获取该话题下的问题,话题id为唯一标识,参见话题的url
- topicID 话题的ID

Example

请求这个话题:生活、艺术、文化与活动
topicID 为 19791501

var topicID = '19791501';
    zhihu.Topic.getTopicByID(topicID).then(function(result){
    console.log(result);
});

Result

参数说明

  • name 话题名称
  • page 当前页数
  • totalPage 该话题下问题总页数
  • questions 当页问题
    • title 问题名字
    • url 问题链接
    • postTime 问题最近更新时间

  { name: '生活、艺术、文化与活动',
  page: 1,
  totalPage: 47242,
  questions:
  { '0':
  { title: '为什么很多人能接受有过长期恋爱经历,却不能接受有过婚姻的人?',
  url: 'http://www.zhihu.com/question/27816723',
  postTime: '41 秒前' },
  '1':
  { title: '嘴巴张合脸颊会发出咯的声音?为什么?',
  url: 'http://www.zhihu.com/question/27816716',
  postTime: '1 分钟前' },
  '2':
  { title: '如何有效率的学好粤语呢?',
  url: 'http://www.zhihu.com/question/27816709',
  postTime: '1 分钟前' },
  '3':
  { title: 'pc ssh连接到服务器每隔几十分钟掉线一次是什么问题?',
  url: 'http://www.zhihu.com/question/27816701',
  postTime: '1 分钟前' },
  '4':
  { title: '找对象该不该看长相?',
  url: 'http://www.zhihu.com/question/27816694',
  postTime: '2 分钟前' },
  '5':
  { title: '为什么很少有关于大阪的推荐?',
  url: 'http://www.zhihu.com/question/27816691',
  postTime: '2 分钟前' },
  '6':
  { title: '遇到偷东西朋友怎么办?',
  url: 'http://www.zhihu.com/question/27816684',
  postTime: '2 分钟前' },
  '7':
  { title: '自古以来,皇帝、权贵从小接受的是什么教育?东方与西方有哪些不同?',
  url: 'http://www.zhihu.com/question/27816683',
  postTime: '2 分钟前' },
  '8':
  { title: '还有什么小说像《东莞的森林》这样文艺的?',
  url: 'http://www.zhihu.com/question/27816680',
  postTime: '2 分钟前' },
  '9':
  { title: '韩国法律里,《匹诺曹》中哥哥应该会判什么刑?',
  url: 'http://www.zhihu.com/question/27816676',
  postTime: '3 分钟前' },
  '10':
  { title: '哪位作家出车祸丧失睡眠功能了?',
  url: 'http://www.zhihu.com/question/27816674',
  postTime: '3 分钟前' },
  '11':
  { title: '文字狱与同治中兴的关系?',
  url: 'http://www.zhihu.com/question/27816663',
  postTime: '3 分钟前' },
  '12':
  { title: '为什么到了年关有关婚姻的问题就多了起来呢?',
  url: 'http://www.zhihu.com/question/27816660',
  postTime: '3 分钟前' },
  '13':
  { title: 'Windows Holographic这样的全息产品是否会扼杀儿童的想象力?',
  url: 'http://www.zhihu.com/question/27816653',
  postTime: '4 分钟前' },
  '14':
  { title: '如何评价纳兰明珠?',
  url: 'http://www.zhihu.com/question/27816651',
  postTime: '4 分钟前' },
  '15':
  { title: '如何拍出有「领导人出游」感觉的照片?',
  url: 'http://www.zhihu.com/question/27816646',
  postTime: '4 分钟前' },
  '16':
  { title: '读大学本科第二年参加学校对外的交流项目到国外学习几个月,这样获得的证书是能认证的吗?',
  url: 'http://www.zhihu.com/question/27816645',
  postTime: '4 分钟前' },
  '17':
  { title: '什么情况下应该穿囚服?什么情况可以不穿?识别服和囚服一样么?有什么区别?希望有个详细解答!?',
  url: 'http://www.zhihu.com/question/27816641',
  postTime: '5 分钟前' },
  '18':
  { title: '何谓荷花厅?',
  url: 'http://www.zhihu.com/question/27816635',
  postTime: '5 分钟前' },
  '19':
  { title: '360卫士在C盘为什么不可以删掉?',
  url: 'http://www.zhihu.com/question/27816632',
  postTime: '5 分钟前' } } }
使用微博API(nearby timeline接口)搜集含GPS新浪微博数据 上篇文章讲述了如何使用“关键字+时间段+区域”搜集新浪微博数据 阅读详情

相关推荐

simplezhihu-api:简易知乎API接口

simple知乎的静态api登录用了jwt,没有数据库开销练手项目,并且没有采用服务层重叠代码,都直接把代码放在控制器上

【免费下载】 知乎API使用教程

知乎API(Zhihu API)是一个非官方的Python库,旨在为对知乎数据感兴趣的用户提供一套简洁、优雅的API接口。该库支持Python 3,适用于数据分析、数据挖掘、增长黑客以及希望通过程序自动完成知乎操作的应用场景。 ## 项目快速启动 ### 安装 首先,你需要安装知乎API库。你可以通过pip安装最新版本: ```bash pip install -U zhihu ``` ...

gitblog_00402的博客 2359

博客园开放api、还有知乎、V2EX开放接口

最新整理,持续更新ing… 博客园开放api GET 48小时阅读排行 http://wcf.open.cnblogs.com/blog/help/operations/Get48HoursTopViewPosts GET 分页获取推荐博客列表 http://wcf.open.cnblogs.com/blog/help/operations/GetPagedRecommendedBlogger GET 获取推荐博客总数 http://wcf.open.cnblogs.com/blog/help/operations/GetRecommendedBloggerCount GET 根据作者名搜索博

【免费下载】 探索知乎的无限可能:Zhihu-API,一个非官方的API工具

在这个信息爆炸的时代,我们常常需要从各种平台获取有价值的内容。其中,知乎作为一个知识分享的平台,以其高质量的问题与答案深受用户喜爱。今天,我要向大家推荐一个能够帮助开发者更高效地获取和操作知乎数据的开源项目——Zhihu-API。 ### 项目介绍 Zhihu-API 是一个由社区成员创建的非官方接口库,旨在提供基本的数据访问功能,让开发人员可以轻松地通过编程方式获取和处理知乎上的信息。这个项...

gitblog_00063的博客 4530

《从0到1:CTFer成长之路》书籍配套题目-[第二章 web进阶]文件上传

[第二章 web进阶]文件上传开始行动绕过第1个限制绕过第2个限制 介绍:记录一下笔记,方便以后迅速回忆使用。 《从0到1:CTFer成长之路》书籍配套题目,来源网站:《从0到1:CTFer成长之路》 先看一下题目源码: <?php header("Content-Type:text/html; charset=utf-8"); // 每5分钟会清除一次目录下上传的文件 require_once('pclzip.lib.php'); if(!$_FILES){ echo '

weixin_46703850的博客 3411

西门子1500T系列凸轮同步(CAMIN指令用法)

添加凸轮工艺对象(TO_CAM),也就是凸轮表。开始编程,先写2个轴的使能、回原点与主轴的定位。监控主轴与从轴的位置、速度关系是否满足实验要求。1.添加工艺对象(1个定位轴,1个同步轴)调用CAMIN指令 ,凸轮耦合。主轴为旋转轴且为模数轴。3.调用插补凸轮盘指令。4.仿真、监控、调试。

gyxgyx789的博客 1万+

【亲测免费】 知乎API客户端:syaning/zhihu-api 使用指南

`syaning/zhihu-api` 是一个非官方的知乎API封装库,专为对知乎平台数据感兴趣的数据分析师、开发者准备。该库以Python实现,提供了简洁、优雅且符合Python风格的接口,便于集成到各种自动化任务和分析工具中。它适用于数据分析、数据挖掘、知乎账号自动化管理等多种场景,帮助开发者便捷地访问和操作知乎数据。请注意,本项目仅支持Python 3。 ## 项目快速启动 首先,确保你...

gitblog_00183的博客 2612

通信工程学习:什么是OLT光线路终端

OLT(光线路终端)是无源光网络(PON)的核心局端设备,负责光/电信号转换、数据处理、带宽分配及用户管理。具有高带宽、低损耗、高安全性和易维护等技术特点,广泛应用于家庭、企业及公共机构宽带接入。未来将向更高性能、智能化方向发展,结合SDN/NFV等新技术,提升网络服务质量。

limengshi138392的博客 4359

信息搜集:SHODAN API 参考

信息搜集:SHODAN API 参考 Shodan是全球开放最早的网络空间搜索引擎,也是目前全球最为之名的搜索引擎。Shodan每月中会在全球5亿左右的设备上进行信息搜集,主要针对服务器、网络设备、摄像设备、工控设备等基础设备进行扫描。Shodan为用户提供了11种代码库便于使用API接口。使用Shodan需要注册账号,分为注册会员,企业版和高级企业版是收费的。Shodan搜素引擎界面如下图: Shodan主要获取互联网中设备中的服务、位置、端口、版本等信息,目前比较受欢迎的内容有webcam、link

Bruce_xiaowei的博客 1万+

KEIL-MDK代码美化神器:AStyle配置全攻略(附常用参数详解)

本文详细介绍了如何在KEIL-MDK中配置和使用AStyle代码格式化工具,包括基础参数设置、高级格式控制、团队协作方案以及KEIL深度集成技巧。通过合理的AStyle配置,开发者可以显著提升代码风格一致性,优化团队协作效率,特别适合嵌入式开发项目。

weixin_30505225的博客 146

开关电源环路稳定性分析(01)-Buck变换器

这篇文章主要是根据Buck变换器的拓扑结构,利用欧姆定律,基尔霍夫定律,积分微分,这些我们所熟悉的理论推导出了开关电源输入和输出关系的表达式,我相信看完这篇文章,应该是可以自己推导一次。在后面的文章中,我们同样会按照这样的风格,尽量使用大家都已经掌握的知识,来一步一步的拆解晦涩难懂的环路稳定性的问题,在前面先把积木搭起来,后面综合分析的时候就不会显得那么困难!

D_Katter的博客 3834

【资源搜集】7 款不错的聊天机器人 API 接口搜集

前段时间玩微信爬虫,仿佛打开了新世界的大门。 使用 wxpy 库调用微信的接口,可以获取好友信息,聊天消息收发等功能。 脑洞一开,这样不就可以用来做 聊天消息防撤回,红包提醒,自动回复这些有意思的玩意儿了嘛! 言归正传,这次我搜集整理了一些比较好用的 ”聊天机器人“ 的 API 接口。 如果后期有机会的话,把它们接入我的程序中,做一个陪聊小助手,也是一个不错的选择。 小 i 机...

亮出锋芒,剑指苍穹 3万+

恒玄BES调试笔记-BES2500如何Dump Anc Audio数据

从YP的4M flash改HP3的2M flash只需要改: 原工程:target.mk的export FLASH_SIZE ?= 0x200000和common.mk里的KBUILD_CPPFLAGS += -DNEW_IMAGE_FLASH_OFFSET=0x100000 OTA工程:target.mk的NEW_IMAGE_FLASH_OFFSET ?= 0x100000和FLASH_SIZE ?= 0x200000 ...

leezs的博客 1672

渗透测试之信息搜集

本文整理信息搜集需要掌握的知识和可能会用到的软件。

lubai60060的博客 1157

linux 基于debian/ubuntu AB系统适配(二)-updateEngine移植

其实A/B系统的原理很简单,大部分的工作都集中在uboot上,rootfs只是起到一个辅助的作用,但这个作用也就必不可少的。你会发现在这个其中并没有kernel的参与。

badbayyj的博客 1033

Android Keymaster- 设备集成笔记 嵌入式

本文介绍了 Android Keymaster 的原理、使用方法和示例源代码。Android Keymaster 是一个重要的安全组件,为开发者提供了加密和解密功能,用于保护设备上存储的敏感数据。Android Keymaster 是 Android 系统的一个安全组件,用于保护设备上存储的敏感数据。Keymaster 使用基于硬件的密钥存储,同时提供了一组 API,让开发者可以在应用程序中使用这些加密功能。在嵌入式设备中,Android Keymaster 是一个重要的组件,用于提供加密和解密功能。

LrFortran的博客 671

信息搜集:网络空间搜索引擎语法及API的应用

网络空间搜索引擎语法及API的应用 ​ 搜索引擎是指从互联网搜集信息,经过一定整理以后,提供给用户进行查询的系统。传统的搜索引擎对我们来说并不陌生,像Google、百度等。与传统搜索引擎相比,网络空间搜索引擎有很大不同,其搜索目标为全球的IP地址,实时扫描互联网和解析各种设备,对网络中的设备进行探测识别和指纹分析,并将其扫描的目标信息进行分布式存储,供需求者检索使用。 1. 传统网络空间搜索框架 一般由五部分组成: § 扫描和指纹识别 § 分布存储 § 索 引

Bruce_xiaowei的博客 1300

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【资源搜集】聊天机器人 API 搜集汇总

搜集整理了一些比较好用的 ”聊天机器人“ 的 API 接口。 如果后期有机会的话,把它们接入我的程序中,做一个陪聊小助手,也是一个不错的选择。 小 i 机器人 有网页版和手机版,网页版直接打开就是聊天窗口界面,不需要注册。 聊天的风格还是比较活泼的,没有那么死板。 没有提供开放的开发者接口 API ,不过如果懂爬虫知识的话,可以抓包来搞定。 相关文章可以参考:https://blo...

eli的博客 1849

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

信息搜集:网络空间搜索引擎(Shodan)语法及API应用案例

信息搜集:网络空间搜索引擎(Shodan)语法及API应用案例 使用Python去调用Shodan的API接口可以实现自动化信息搜集,首先需要注册用户,在My Account中可以看到API Key。本例如下图: 初始化API: import shodan SHODAN_AIP_KEY = 'SXEuzFfIj612RyNE5NcOhTeAtNHznp4s' shodan_api = shodan.Shodan(SHODAN_AIP_KEY) 初始化API之后就可以使用Shodan的库函数,下面整理一

Bruce_xiaowei的博客 2967

Nmap+Fofa 一体化信息搜集工具打造

本文介绍了一款Nmap+Fofa一体化信息搜集工具的开发与使用。该工具整合了Nmap的C段扫描能力与Fofa API的资产查询功能,支持自动提取存活主机、域名解析IP、结果规范输出等核心功能。工具包含Nmap扫描模块(17种扫描类型、自动存活提取)、Fofa查询模块(支持多种查询方式、字段自动对齐)以及通用增强功能(异常处理、结果去重等)。安装配置简单,只需准备Python环境、Nmap和Fofa API即可使用。该工具能显著提升渗透测试和网络运维中的信息搜集效率,解决手动操作低效问题。

Bruce_xiaowei的博客 909

信息搜集之搜索引擎

搜索引擎(search engine)是指根据一定的策略、运用特定的计算机程序搜集 互联网上的信息,在对信息进行组织和处理后,为用户提供 检索服务的系统。无分类子网无分类编址 CIDR消除了传统 A 类、B 类和 C 类地址以及划分子网的概念,使用网络前缀和主机号来对 IP 地址进行编码,网络前缀的长度可以根据需要变化。IP 地址 ::= {< 网络前缀号 >, < 主机号 >}无分类编址 CIDR消除了传统 A 类、B 类和 C 类地址以及划分子网的概念,使用网络前缀和主机号。......

m0_70483044的博客 4349

GITHUB信息泄露搜集工具GSIL修改版

文章目录项目地址(欢迎Star、Fork)原项目地址修改后的地址关于GSIL-PRO关于开源项目GSIL修改内容使用方式原项目GSIL代码分析,方便快速定位功能点参数配置:限制关于源码,有兴趣的可以改成自己想要的样子 项目地址(欢迎Star、Fork) 原项目地址 GSIL 修改后的地址 GSIL_PRO 关于GSIL-PRO 该项目修改自开源项目GSIL,初衷是为了方便自己的使用,并做了一些...

STAR_LORD 3038

个人微信号API接口搜集

个人微信号API接口搜集 登录模块 登录平台 member/login 获取微信二维码 user/login 执行微信登录 getIPadLoginInfo 获取联系人列表(群、好友) getAllContact 二次登录(退出微信号 需要再次登录 调用此接口即可) secondLogin 退出微信 logout 消息接收模块 设置消息接收地址 setHttpCallbackUrl 取消消息接收 cancelHttpCallbackUrl 消息发送模块 发送文本消息 sendText 发送图片消息 send

ruanquanf的博客 2539

(4)Kali渗透测试之被动信息搜集

当接到任务时,首先就要进行渗透阶段的被动信息搜集。 被动信息搜集 公开渠道可获得的信息 与目标系统不产生直接交互 尽量避免留下一切痕迹 OSINT: 信息搜集内容 IP地址段 域名信息 邮件地址 文档图片数据 公司地址 公司组织架构 联系电话/传真号码 人员姓名/职务 目标系统使用的技术架构 公开的商业信息 信息用途 用信息描述目标 发现 社会工程学攻击 物理缺口 信息搜集-DNS...

习惯积淀的博客 444

在Kali Linux上使用Sn0int进行信息搜集

在渗透测试中,信息搜集是非常重要的一步,它可以帮助我们了解目标系统或应用程序的结构和漏洞。sn0int是一款非常强大的信息搜集工具,它可以帮助我们搜集子域名、IP地址、邮箱地址、社交账号等信息。信息搜集是渗透测试中非常重要的一步,sn0int是一款非常强大的信息搜集工具,可以帮助我们搜集子域名、IP地址、邮箱地址、社交账号等信息。如果你已经知道目标的IP地址,可以直接使用sn0int来搜集该IP地址上的网站。接下来,我们将使用sn0int搜集目标域名的子域名。sn0int还可以搜集目标域名的邮箱地址。

H1070的博客 1046
上一篇: Android真机调试连接本地Apache服务器
下一篇: 位运算的运用
KingLearnJava
博客等级 码龄12年 93粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值