首页 > 代码库 > BliBli抢楼全攻略
BliBli抢楼全攻略
B站抢楼是一个很好玩的事情,每当新番出新集时。总有很多人想能够在前排发表评论,但是因为人数众多,往往不能如愿,今天就教大家一个抢楼的好办法。
我们平时抢楼的整个流程是这样的:
1.在官方放出的新番更新时间时等待
2.到时间后一直不停的刷新网页,等待新集数网页链接出现,出现后点击进入
3.等待网页载入完成,然后写入并发表评论。
但是这么做,基本是不可能抢到一楼的。
在看之前最好先了解下http协议基础内容,知道post和get就行了:这里有一篇文章很不错:HTTP 协议详解
了解之后,测试就可以得出我们就可以知道b站发表评论的方式是向服务器post数据,使用http fox监视数据后,post的数据是这样的:
其中的message就是我们要发的内容,oid则是目标番剧的代码,b站的每个番剧都会有一个类似的编号。
那么我们要做的就是获得目标剧的编号,然后在第一时间post数据,这样我们省去了加载网页的过程直接完成抢楼。
虽然B站有很多动漫,但是每天更新的数量还是很有限的,而且日漫都是在半夜发布,而且番剧号都是有顺序的递加,所以只需要在番剧更新前几分钟测试下,就能得到将要更新的番剧号
因为发表弹幕需要登录,所以这里还使用了selenium模拟登录并获得网页cookies,关于cookies,有兴趣也可以了解下:cookie协议详解
具体代码如下:
from selenium import webdriverimport requestsfrom re import findalldef get_cookies(): driver = webdriver.Firefox() url = ‘https://passport.bilibili.com/login‘ driver.get(url) driver.find_element_by_xpath(‘//*[@id="userIdTxt"]‘).send_keys(input(‘请输入用户名‘)) driver.find_element_by_xpath(‘//*[@id="passwdTxt"]‘).send_keys(input(‘请输入密码‘)) driver.find_element_by_xpath(‘//*[@id="vdCodeTxt"]‘).click() driver.find_element_by_xpath(‘//*[@id="vdCodeTxt"]‘).send_keys(input(‘请输入验证码(不分大小写)‘)) driver.find_element_by_css_selector( ‘body > div.head_foot_content > div > div.content-bd > div.content-r > form > input.login‘).click() if driver.current_url != url: print(‘登录成功‘) qianglou(driver.get_cookies()) else: print(‘登陆失败,请重试‘) get_cookies()def qianglou(cookie): cookies = { ‘DedeUserID‘: cookie[1].get(‘value‘), ‘DedeUserID__ckMd5‘: cookie[2].get(‘value‘), ‘SESSDATA‘: cookie[3].get(‘value‘), } anime_num = input(‘请输入要抢楼的番剧编号\n->‘) message = input(‘请输入要发送的信息\n->‘) data = { ‘message‘: message, ‘type‘: 1, ‘oid‘: anime_num } send_message(cookies, data)def send_message(cookies, data): url = ‘http://api.bilibili.com/x/v2/reply/add‘ content = requests.post(url, data=http://www.mamicode.com/data, cookies=cookies).content.decode(‘utf8‘, ‘ignore‘) result = findall(‘"message":"(.*?)"‘, content) if result[0] == ‘ok‘: print(‘发送完成‘) else: send_message(cookies, data)if __name__ == ‘__main__‘: get_cookies()
我只实现了最基础的发表弹幕功能,缺点是你必须提供要抢楼的番剧号,有兴趣的可以继续完成,我提供下思路:通过BeautifulSoup,检测番剧主页面,是否更新,然后在更新时提取出番剧编号,自动发弹幕。
祝抢楼愉快~~~
BliBli抢楼全攻略
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。