Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我写了一个爬虫 想爬取腾讯视频的弹幕 但是总是获取不完整 求助?

我写了一个爬虫 想爬取腾讯视频的弹幕 但是总是获取不完整 求助?

提问于 2019-03-26 14:29:34
回答 0关注 1查看 919

如问题描述:开始是视频显示有60000多条弹幕,但是我只能爬取到25000条。

顺便 想问一下,js包里面的内容都代表什么呢?

视频网址https://v.qq.com/x/cover/pkd7mm8nlor7sqv/m0020d4bocq.html

其中一个js包中的一个内容:{"commentid"::"6129416678651013752","content":"今天我们","upcount":5,"isfriend":0,"isop":0,"isself":0,"timepoint":155,"headurl":"","opername":"","bb_bcolor":"","bb_head":"","bb_level":"","bb_id":"","rich_type":0,"uservip_degree":0,"content_style":""}

因为我看到第一个弹幕的时间戳是15所以设置的stamp=15,然后+=30

下面附代码,求助!

from urllib.parse import urlencode

import requests

import re

import csv

import time

import random

def search(base_url, time_stamp):

try:

headers = {

'user-agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4295.400 QQBrowser/9.7.12661.400',

'accept': '*/*',

'accept - encoding': 'gzip, deflate, sdch, br',

'accept - language': 'zh-CN,zh;q=0.8',

'cache - control': 'max - age = 0',

'cookie':'cuid=9102028816; pgv_pvi=8393473024; RK=ITK8C31Rc1; tvfe_boss_uuid=047a68f022a12505; pac_uid=1_1179630150; ptui_loginuin=1179630150; ptisp=cnc; ptcz=4c8a92ec5e84326bd8926bc75a1413db138bc560b11fd2026cbb4652c51a10d9; uin=o1179630150; skey=@G4DR3fRZB; appid=3000501; login_time_init=1553069185; _video_qq_version=1.1; _video_qq_appid=3000501; _video_qq_login_time_init=1553069185; main_login=qq; vuserid=624788404; vusession=70de633e23002eb00000000012d275a5949283c2bd4e; next_refresh_time=4405; _video_qq_main_login=qq; _video_qq_vuserid=624788404; _video_qq_vusession=70de633e23002eb00000000012d275a5949283c2bd4e; _video_qq_next_refresh_time=4405; login_time_last=2019-3-20 16:42:40; o_cookie=1179630150; pgv_info=ssid=s3395872160; pgv_pvid=3092479592'

}

data = {

'timestamp': time_stamp,

'target_id': '1379190863',

}

# 使用urlencode()函数将参数表示为链接形式,进行拼接

url = base_url + urlencode(data)

response = requests.get(url, headers=headers)

if response.status_code == 200:

return response.text

except Exception:

return None

def get_30s_danmu(text):

id = re.findall(r'"commentid":"(.*?)",', text)

T = re.findall(r'"timepoint":(.*?),', text)

comments = re.findall(r'"content":"(.*?)",', text)

like = re.findall(r'"upcount":(.*?),"', text)

for (i, j, k, l) in zip(id, T, like, comments): # 生成可迭代对象

a=int(int(j)/60)

b=int(j)%60

c=":"

d=str(a)

e=str(b)

seq=(d,e)

j=c.join(seq)

with open('douluo_test1_danmu.csv', 'a+', newline='', encoding='utf-8-sig') as f: # newline=''可以避免存入空行;设置编码;追加写入

writer = csv.writer(f)

writer.writerow(['\''+str(i), str(j), str(k), l])

def main():

time_stamp = 15

num = 1

while True:

print('第{}次爬取'.format(num))

print('*'*50)

base_url = 'https://mfm.video.qq.com/danmu?'

text = search(base_url, time_stamp)

print('*'*50)

get_30s_danmu(text)

time_stamp += 30

num += 1

if __name__ == '__main__':

main()

回答 2

相柳

发布于 2018-11-07 08:38:38

可以销毁,在云主机的操作菜单有销毁操作,需要注意的是,包年包月主机会进入回收站

按量计费会直接销毁(数据不可恢复)

沈唁

发布于 2018-10-08 03:10:11

手动销毁方式:包年包月类型实例支持未到期自助销毁,销毁后该实例将在回收站保留7天,也可在回收站中彻底销毁;按量计费类型实例支持手动销毁。

定时销毁方式:按量付费类型实例支持设置定时销毁,选择一个未来的时间销毁资源,销毁时间精确到秒。您也可以再次设置,覆盖前一次设置的销毁时间。

自动销毁方式:包年包月类型实例在回收站中 7 个自然日未恢复会自动销毁;按量计费类型实例余额小于 0 状态持续 24 小时后自动销毁。规定时间内完成 续费 可继续使用。

和开发者交流更多问题细节吧,去 写回答
相关文章
销毁MBProgressHUD
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/51065513
用户1451823
2018/09/13
9820
[tkinter]隐藏/销毁控件
pack布局的情况下有pack_forget()方法让控件“不再显示”但控件还存在可以再次pack出来
py3study
2020/01/17
2.2K0
销毁Spring Bean: 销毁Bean的基本操作有哪些?
Spring 源码解读分析中上一篇主要介绍关于Bean的初始化以及延迟初始化,接下来分析Bean的销毁阶段-和Bean 的初始化对应!Bean的销毁方式也有三种
码农架构
2020/10/26
3.7K0
销毁Spring Bean: 销毁Bean的基本操作有哪些?
销毁 Session 和 Cookie
销毁 Session 和 Cookie private static void resetCookie(HttpServletRequest request, HttpServletResponse response) { Cookie userCodeCookie = new Cookie("userCode", null); Cookie userNickname = new Cookie("userNickname", null); Cookie use
MashiroT
2022/10/28
6040
代币销毁问题集
我们经常会在业内的新闻报道中看到某某代币又进行了销毁的消息。那么,什么是代币销毁呢?代币是如何被销毁的呢?销毁使用的黑洞地址又是什么呢?被销毁后的代币还能被找回吗?代币为什么要进行销毁呢?今天,我们就来试着回答这些问题。
Tiny熊
2022/01/05
3K0
Java Session获取/销毁
Session会话机制,它是保存在服务器里面的,就是当我们进入一个浏览器,浏览器会 自动给我们创建一个session保存用户的信息,当关闭浏览器的时候,session就销毁 了,Session在web项目中是经常用到的。下面是session的用法。 Session在web项目中的登录是基本都用上的,那么就以账号登录为例: 代码只是展示了最里面判断登录成功并保存数据到session的
全栈程序员站长
2022/09/14
1.6K0
关于Activity销毁,而绘制UI的子线程未销毁出现的问题
项目总结 -----------------------------------------------------------------------------------------------
听着music睡
2018/05/18
1.4K0
对象相关删除销毁处理
删除方法: delete 对象名.函数名()或者delete对象名['函数名']()
十月梦想
2018/08/29
9540
activity跳转activity不销毁
最近在做菜单,有三个界面分别用activity来显示,如 Activity A -> Activity B -> Activity C,返回键Activity C -> Activity B -> Activity A,当从A进入到B时按返回键无法退到A,是因为在A进入B时用了finish()方法,把A给销毁了,如下:
全栈程序员站长
2022/08/31
1.4K0
ActivityManagerService--Activity销毁流程
在调用完setResult以及finish之后,开始启动Activity销毁以及结果返回的流程。
None_Ling
2019/08/02
1.6K0
python变量'创建,引用,销毁'
引用: 当参数被引用,python引用计数器自增1 python中列表和字典引用示例 列表: def add_list(p): p+=[3] 或 p=p+[3] //print结果不一致,+、+=实现不同方法 p=[1,2] add_list(p) print(p) 字典: def add_dictionary(): b=a={‘one’:1,’two’:2} print(‘{}’.format(a[‘one’])) b[‘one’]=2 b[‘two’]=1 print(‘{}’.format(b[‘one’]))
py3study
2020/01/07
2K0
python对象销毁(垃圾回收)
'''python对象销毁(垃圾回收)''' class Point: 'info class' def __init__(self,x=0,y=0): self.x = x self.y = y def __del__(self): class_name = self.__class__.__name__ print(class_name, '销毁') pt1 = Point() pt2 = pt1 pt3 = pt
py3study
2020/01/06
7470
清空链表和销毁链表
注意销毁链表后,就不能对链表进行任何操作,否则为访问权限冲突,因为头结点指向的内存的操作权限已经归还给了操作系统
大忽悠爱学习
2021/03/02
2.7K0
清空链表和销毁链表
C++之对象的销毁
生活中对象都是被初始化后才上市的 生活中的对象被销毁前会做一些工作 问题1 : C++中如何清理需要销毁的对象? 一般而言,需要销毁的对象都应该做清理 解决方案 为每个类都提供一个public的
程序手艺人
2018/05/18
1.3K0
PVE 批量销毁虚拟机
注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
宋天伦
2023/10/21
1.4K0
C++核心准则​​ES.61:使用delete[]销毁数组,使用delete销毁对象
That's what the language requires and mistakes can lead to resource release errors and/or memory corruption.
面向对象思考
2020/05/25
9470
C++核心准则​​ES.61:使用delete[]销毁数组,使用delete销毁对象
RAC(ReactiveCocoa)介绍(七)——信号销毁
在RACSignal信号发送命令执行之后,本着谁创建谁销毁的原则,最后一步必须要进行销毁操作。而销毁操作的执行则由RACDisposable类来完成。 RACDisposable类在RAC中作为一个父类,由三种子类继承自它。RACCompoundDisposable、RACSerialDisposable以及RACKVOTrampoline。 首先来看下RACDisposable类在执行销毁disposableWithBlock方法时的操作。
我只不过是出来写写代码
2019/04/02
2.2K0
RAC(ReactiveCocoa)介绍(七)——信号销毁
RxSwift销毁者-dispose源码解析
现在感觉一切很顺利,但是聪明的我们一定要知道这里落下一个重要的前导因素:什么时候调用了 dispose()
iOSSir
2019/08/09
1.1K0
《Effective Java》—— 创建与销毁对象
本篇主要总结的是《Effecticve Java》中关于创建和销毁对象的内容。 比如: 何时以及如何创建对象 何时以及如何避免创建对象 如何确保及时销毁 如何管理对象销毁前的清理动作 考虑用静态工厂方法代替构造器 使用静态工厂的优势: 有名称 不必每次调用的时候都创建一个新的对象 返回原返回类型的任何子类型对象 在创建参数化类型实例时,代码更加简洁。 使用静态工厂的缺点: 类如果不包含公有的或者受保护的构造器,就不能被子类化 与其他的静态方法实际上没有任何区别 举个例子: public class A
用户1154259
2018/01/17
8120
深度解析 iOS底层 - 单列销毁
在执行到 dispatch_once 函数的 block 中的时候,我们 bt 下看下堆栈信息:
CC老师
2022/01/11
7790
深度解析 iOS底层 - 单列销毁

相似问题

你好请问怎么销毁呀?我已经销毁过一台了还可以销毁吗?

3527

欠费资源销毁怎么解决?

1429

小程序里监听消息事件是可以有多个的?我用off销毁没有生效,怎么销毁?

0357

销毁云服务器销毁后还需要扣费吗?

195

不想再续费的服务器是否需要销毁?手动销毁显示无法销毁?

2415
相关问答用户
自由工作者
CVM专项擅长1个领域
腾讯科技(深圳)有限公司 | 高级工程师
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档