CSDN极客头条Chrome插件开发

0x00 为何开发

刷微博刷到一条招募消息。
找不到工作的人就是闲

0x01 怎么做

看到有提到已经有书签的版本,这就好办,省得自己去找口啦!

然并卵

复制地址一看

javascript:window.location="http://geek.csdn.net/news/bookmarklet?u="+encodeURIComponent(document.location)+"&t="+encodeURIComponent(document.title)+""

好像很简洁,打开头条网址,找到右下角的发布,POST的完整实现应该是这样子的:

url: http://geek.csdn.net/service/news/add_edit
data: {
          'username': 'johnkivy',\\
          'title':'A Gentle Guide to Machine Learning',\\
          'url':'http://blog.monkeylearn.com/a-gentle-guide-to-machine-learning/',\\
          'description':'Nice',\\
          'tag':'Machine-Learning',\\
          'forum_id':'43'
      }

返回结果:

{"status":1,"error":"","data":{"id":38521},"is_god":false}

子社区的获取地址:

http://geek.csdn.net/service/news/forums

不带用户名参数巨慢(5s+),带上之后我的username=johnkivy之返回了12个数据。
返回结果

{"status":1,"error":"","data":[{"id":"47","name":"前端"},{"id":"1","name":"GEEK头条"},{"id":"8","name":"Rust"},{"id":"12","name":"Swift"},{"id":"14","name":"全栈工程师"},{"id":"17","name":"\/home"},{"id":"33","name":"PrestoDB"},{"id":"43","name":"人工智能"},{"id":"58","name":"安全"},{"id":"48","name":"Spark"},{"id":"49","name":"云计算"},{"id":"50","name":"潜水猿"},{"id":"53","name":"Container"},{"id":"55","name":"物联网"},{"id":"57","name":"SDN"},{"id":"61","name":"技术翻译"},{"id":"63","name":"虚拟现实"},{"id":"65","name":"Android开发者"},{"id":"66","name":"iOS开发"},{"id":"67","name":"Nodejs"},{"id":"68","name":"Python开发者"},{"id":"70","name":"AngularJS"},{"id":"71","name":"Grails\/Groovy"},{"id":"73","name":"Git教程"},{"id":"75","name":"Go"},{"id":"76","name":"CSDN前端"},{"id":"77","name":"CSDN PHPer"},{"id":"78","name":"C#极客区"},{"id":"79","name":".NET"}]}

目前我们大概需要的数据:

{
  "howtoadd": "http_request",
  "data": {
    "url": "http://geek.csdn.net/service/news/add_edit",
    "method": "POST",
    "loginrequired": "notsurenow",
    "data": {
      "username": "johnkivy",
      "title": "A Gentle Guide to Machine Learning",
      "url": "http://blog.monkeylearn.com/a-gentle-guide-to-machine-learning/",
      "description": "Nice",
      "tag": "Machine-Learning",
      "forum_id": {
        "form_ids": {
          "url": "http://geek.csdn.net/service/news/forums",
          "data": [{"id":"47","name":"前端"},...]
        }
      }
    }
  }
}

确定login required,方式很多可以用curl,Python ...,为表直观这里直接在浏览器中用一个HttpRequester的插件.

  • 清楚浏览器登陆数据
  • 在表单内填入已知的数据
  • 分析结果

没有截图,得到的结果就是不用登陆,不排除在之后CSDN的Geek团队会加上,幸好有人工审核.不过这太不完善了,直接用别人用户名一交,比如我的那篇用yxy1992_123交过.

0x02 具体过程

简介为王,初步功能方向:

  • 提供设置
    • 快推与精准模式切换
    • 识别规则
    • 功能扩展
    • ...
  • 在右键菜单中加入推到头条
  • ...

在Github上建个Repository.直接把代码鲁到master分支上去.

0x03 调试结果

0x04 发布与问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,916评论 25 708
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,341评论 11 349
  • Http协议详解 标签(空格分隔): Linux 声明:本片文章非原创,内容来源于博客园作者MIN飞翔的HTTP协...
    Sivin阅读 5,251评论 3 82
  • title: vegadate: 2016-07-31 11:16tags: Kali渗透测试 Web渗透测试 0...
    曼路x_x阅读 3,928评论 0 2
  • 那年 提笔校园 从此 与书为伴 只今 人海书山 一梦十七年
    寂寞空间阅读 150评论 0 0