声明:本篇仅基于兴趣以及技术研究而对B站曾经发生过的抢楼事件背后相关技术原理进行研究而写。请不要将其作为私利而对B站以及B站用户体验造成影响!谢谢合作!若本文对B站及其用户带来困扰,请联系本人删除本文。

虽然说是技术研究,但实际上并没有什么太深的东西在里面,你只需要懂一点http协议的请求格式、懂python、会使用python requests package就能完成这个简单的任务了。

如果你不懂python,还是先简单了解一下配置环境以及语法再来继续下面内容。

好了,如果你想要简单浏览并了解一点http协议知识,可以试试阅读这两篇:https://blog.csdn.net/a19881029/article/details/14002273、https://blog.csdn.net/Stream__/article/details/78604937。

关于本文使用的python库:见 http://docs.python-requests.org/zh_CN/latest/

开始吧。

首先你肯定得有一个浏览器,我推荐Chrome —— 个人喜好。最好还有一个PyCharm或者其他python编辑器,如果你只喜欢用python自带的命令行工具也行。

然后说一点,现在B站为了防止抢楼,把番剧下所有视频的评论区都合并了(一些番剧貌似并没有这样做,例如哆啦A梦),以前每一个视频下都会有对应的评论区,现在所有视频的评论全部在一起的。。。所以现在就算要抢也只有对新番第一集抢楼可能才有‘意义’了。

然后有许多语言工具都可以进行B站的抢楼,比如使用python+phantomjs+selenium、js、Java、C++等,由于我学习能力与水平有限,没用过js、Java进行过爬虫,C++的话自己正在仿照python的requests决定尽力写一个好用的C++ http库。

嘛,这篇还是相当于用便利的requests来做一个爬虫小教学以及学习如何使用除get外的http动词。

工具都准备好了,让我们进入主题吧:

这里随便选了一部老番《D.C.Ⅱ S.S.》又称《初音岛》作为测试。

来到番剧剧集页面,先F12准备监控一会儿发送请求服务器返回的数据包:

当我们要进行这个任务的时候,我们必须要先知道:我们该向什么地方发送的请求?难道就直接对番剧页面发送就可以了吗?如果有做过网站的经验就会知道,一个网站的前端展示页面基本上都是通过 js + ajax 等通过后台的业务逻辑调用数据库中的数据加载到对应的jsp文件中的html标签中自动生成的。比如评论区,肯定有一个 post 的API接口来接受用户发送的数据,并将数据存入到数据库中,然后展示页面 + js + 数据库 + 后台业务逻辑等一套服务,最后我们用户才能在前端中看到丰富的内容,才能看到实时更新的数据,说实时更新不太对,但总之你每次刷新页面,网站后台就会做这些事情。

这些有什么用呢?至少我知道了当我在B站评论区编辑好要发送的消息并点击发送评论的时候,肯定是通过一个特地编写好的接口来post data,而这个post接口的url会在我们点击按钮的动作后显示在浏览器的网络监控中,所以,我们要找到这个接口的url就要先发送一个消息试一试:

最好就是在浏览器加载完该页面的数据后按F12打开监控台,这样比较干净,点击发表评论后,很快就可以注意到我们的动作的回馈,点一下看看内容:

显然,它是通过http post动词来提交的,从中我找到了这个add接口的url:

python api接口post请求_python学习 —— post请求方法的应用相关推荐

  1. python获取字符串首字母_Python学习之字符串方法总结

    1.首字母大写 1 test = "abcdef" 2 v = test.capitalize() 3 print(v) 2.所有字母变小写,lower()只能对ASCII 也就是 ...

  2. 初识Django —Python API接口编程入门

    初识Django -Python API接口编程入门 一.WEB架构的简单介绍 Django是什么? Django是一个开放源代码的Web应用框架,由Python写成.我们的目标是用Python语言, ...

  3. python 嵌入式数据库_Pysqlite下载 Pysqlite for Windows v2.6.3(嵌入式数据库python api 接口) 下载-脚本之家...

    Pysqlite是针对Windows用户设计的一款Python API接口,安装之后就可以进行数据库的连接.创建和管理,可以将sqlit的操作变得简单起来,详细的操作方法参见下文,需要的朋友赶快下载吧 ...

  4. 淘宝网及新浪网等几大官方IP查询API接口地址库的调用及使用方法教程

    淘宝对外提供共享的一个IP地址库API,更新也比较及时,非常适合我们日常的使用. 以下讨论的是和淘宝网 IP查询 地址库 调用 API 相关的淘宝网及新浪网等几大官方IP查询API接口地址库的调用及使 ...

  5. python api接口调用_python 调用有道api接口的方法

    初学者学习python,研究了几天之后,我写了一个python程序调用有道api接口.效果如下图所示:声明:代码仅仅是像我这样的初学者学习和交流.应用程序非常简单.PS:评审不需要时间,请不要滥用!! ...

  6. python爬虫库的功能_Python学习爬虫掌握的库资料大全和框架的选择的分析

    学Python,想必大家都是从爬虫开始的吧.毕竟网上类似的资源很丰富,开源项目也非常多. Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 当我们在浏览器中输入一个url后回车,后台会发生 ...

  7. 学python不会英语怎么办_Python学习 英语不好怎么办?这里有官方中文文档你看不看...

    Python 作为世界上最好用的语言,官方支持的文档一直没有中文.小伙伴们已经习惯了原汁原味的英文文档,但如果有官方中文文档,那么查阅或理解速度都会大大提升.本文将介绍隐藏在 Python 官网的中文 ...

  8. python api接口 安全_App开放接口api安全性的设计与实现

    前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些接口需要进行身份的认证, 那么这就需要用户提供一些信息,比如用户名密码等 ...

  9. python api接口生成_Django 自动生成api接口文档教程

    最近在写测试平台,需要实现一个节点服务器的api,正好在用django,准备使用djangorestframework插件实现. 需求 实现一个接口,在调用时,通过传递的参数,直接运行对应项目的自动化 ...

  10. python+pytest接口自动化(5)-requests发送post请求

    [文章末尾给大家留下了大量的福利] 简介 在HTTP协议中,与get请求把请求参数直接放在url中不同,post请求的请求数据需通过消息主体(request body)中传递. 且协议中并没有规定po ...

最新文章

  1. Java SE 6.0编程指南_Java SE 6.0 编程指南(附光盘)
  2. Java中的Enum(枚举)用法介绍
  3. MySQL入门之大纲
  4. archive for required library...
  5. c语言鼠标游戏代码,自己用C写的一个简单的打地鼠游戏代码出了个问题(鼠标和循环不能...
  6. kindle 新手入门
  7. JS 页面刷新/数据刷新
  8. 前端开发——浏览器插件推荐
  9. Windows7 VS2015 下编译 PythonQt3.2
  10. jupyter notebook 代码自动补全 加 显示变量功能 以及让3d图片可以旋转
  11. 深度学习:深度复数网络(Deep Complex Networks)-从论文到pytorch实现
  12. 魔兽世界一个服务器发邮件给,今天突然收到一个网易魔兽世界邮件,不知道真的还是假的 他的邮件格式好奇怪!大家帮我看看...
  13. 记一次Process finished with exit code 1 项目异常
  14. 21个经典的哲理故事
  15. 如何给单片机烧录程序?
  16. 12款超牛的办公神器,个个功能强大,让工作轻松不累!
  17. PostMan管理EZ
  18. IT十年人生过客-十一-新挑战
  19. java基础代码怎么学_新手入门Java,如何能学好
  20. 邂逅、啡咖、美女、狗屎理论,痞子蔡又回来了

热门文章

  1. Chrome浏览器强制http重定向到https的简单方法
  2. 微软面经 工作体验!六点下班“很爽”?
  3. 发作性睡病的主要症状是什么?
  4. 基于nginx+consul-template+consul+springboot实现自动发现服务的集群
  5. Skr-Eric的Flask课堂(二)——Flask的模板Templates
  6. 所见即所得: Adobe XD 的 Flutter 插件
  7. 【IEEE出版,多届会议历史,往届均已检索|南京工业大学主办,南京工业大学电气工程与控制科学学院承办|EI核心,Scopus检索】第十届IEEE电气工程与自动化国际学术论坛(IFEEA 2023)
  8. Simulink仿真教程3---子系统的创建与封装
  9. cocos 打包安卓 第三方库文件丢失问题
  10. 服务、客户端简单Netty demo