python 怎么去除重复内容
本帖最后由 ____________ 于 2022-7-2 21:11 编辑import json
import time
import requests
while True:
url = requests.post("https://api.live.bilibili.com/ajax/msg?roomid=1406726")
js = json.loads(url.text)
j=js['data']['room']
for i in j :
print(i['nickname'] + "———————" + i['text'] + "———————" + i['timeline'])
time.sleep(1)
想获取直播间聊天记录,但只能获取10个记录,如果没有人发言的话他又会重第一个记录开始获取,我只想获取最新的记录。如果没有新的记录就不打印出来,不知道怎么改写 下面代码是以发言时间为依据来判断是否已经打印
import json
import requests
import time
printed_content = set()
while True:
url = requests.post("https://api.live.bilibili.com/ajax/msg?roomid=1406726")
js = json.loads(url.text)
j=js['data']['room']
for i in j :
if i['timeline'] not in printed_content:
printed_content.add(i['timeline'])
print(i['nickname'] + "———————" + i['text'] + "———————" + i['timeline'])
time.sleep(1) 可以尝试利用集合特性来去重 我没研究它的接口。只是去重的话,写个判断就行
a = ['1', '2', '3']
b = ['4', '2', '3']
for i in b:
if i not in a:
print(i)
也可以定义成集合,再往集合中添加数据,因为集合中的数据是唯一的。
最后,你可以看看这里有没有更合适的接口https://github.com/SocialSisterYi/bilibili-API-collect 你这个可以首先判断时间在哪个时间段以内,其次用in 或 not in 判断是否已经在列表内 根据时间来判断是否为新的评论就好了
判断重复continue过滤 set过滤重复
藏起来的小尾巴,不让你看! 把输出内容存入集合 然后每次判断是否在集合中存在 如果存在则跳过 未存在则存入并输出
页:
[1]
2